NSToolbarItem:用于调整/设置内容拥抱优先级的大小按钮

时间:2016-11-14 10:48:49

标签: cocoa autolayout nsbutton nstoolbar nstoolbaritem

我正在尝试使NSToolbarItem包含NSButton符合按钮的宽度。但是,当我将工具栏项的最大宽度设置为较高值(例如300)并且工具栏中有足够的空间时,按钮将始终扩展到完整的300个点。

如何让按钮增长到例如300分,但如果有必要容纳其内容(即拥抱其内容)?似乎设置按钮contentHuggingPriority如果它位于NSToolbar内,则会被忽略。

3 个答案:

答案 0 :(得分:0)

我是为NSTextField制作的,但它也适用于NSButton。您必须在更改stringValue后设置此项(在Xcode中将minSizemaxSize设置为较低值):

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

也许您必须向size.width添加一些像素,以便按钮足够大。

答案 1 :(得分:0)

有同样的问题。 创建2个ib插座

@IBOutlet weak var  toolBarRegistrationHint: NSButton!
@IBOutlet weak var  toolBarRegistrationHintItem: NSToolbarItem!

比代码

        var maxSize = toolBarRegistrationHintItem!.maxSize

        toolBarRegistrationHint!.title = "Pro ✔︎".localized
        toolBarRegistrationHint!.sizeToFit()
        maxSize.width = toolBarRegistrationHint!.frame.size.width
        toolBarRegistrationHintItem!.maxSize = maxSize

答案 2 :(得分:-1)

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

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

enter image description here

enter image description here

enter image description here