cocoa - NSToolbarItem:大小按钮以适合/设置内容拥抱优先级

标签 cocoa autolayout nsbutton nstoolbar nstoolbaritem

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

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

最佳答案

我为 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 添加一些像素,以便按钮足够大。

关于cocoa - NSToolbarItem:大小按钮以适合/设置内容拥抱优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40586934/

相关文章:

java - 如何指定在 NSMenuItem(最小化窗口指示器)中显示菱形?

objective-c - 自定义 NSButton 焦点环颜色

objective-c - NSImage colorWithPatternImage : how to tile images from the top instead?

objective-c - 在 ARC 中我们需要发送 removeObserver : explicitly?

ios - 改变限制

ios - 如何根据其内容调整 UITextView 的大小?

ios - 如何使用约束解决此自动布局 "puzzle"?

core-animation - 使用核心动画闪烁 NSButton

objective-c - 为非子类 NSButton 分配单击和双击事件[如果重复,请回答此问题]

swift - Swift 初始化器中的错误