2016-11-14 35 views
1

我试图做一个NSToolbarItem包含NSButton适合按钮的宽度。但是,当我将工具栏项目的最大宽度设置为较高值(例如300)并且工具栏中有足够的空间时,该按钮将始终展开为满300点。NSToolbarItem:适合/设置内容拥抱优先级的大小按钮

如何让按钮长到例如300分,但只有如果这是必要的,以适应其内容(即拥抱其内容)?如果设置按钮contentHuggingPriority似乎被忽略,如果它在NSToolbar内。

+0

按钮的文字总是一样吗? – Willeke

+0

否 - 然后我可以修复按钮的宽度。 – MrMage

+0

更改标题后不能调整maxSize吗? – Willeke

回答

-1

您可以通过将按钮的边框设置更改为关闭并将图像的缩放选项设置为按比例降低来完成所需的操作。

下面是一些例子。您可以看到设置更改的不同结果预览。

enter image description here

enter image description here

enter image description here

+0

谢谢,但这不是我所要求的。我的按钮不包含任何图像,但我希望它在包含文本时自动变小。 – MrMage

+0

尽管内容在视觉上可能不占用太多的空间,但工具栏项仍将占用该空间并阻止其他项占据它。 –

0

我做了一个NSTextField,但它也应该适用于一个NSButton。你必须设置这个(在Xcode设置minSizemaxSize为低值)改变stringValue后:

if let font = tf.font { 
    let size = tf.stringValue.size(withAttributes: [NSAttributedStringKey.font: font]) 
    toolBarItem.minSize.width = size.width // maybe + x 
} 

也许你有一些像素添加到size.width,这样按钮将足够大。