macos - NSToolbarItem 拉伸(stretch)到最小宽度

标签 macos swift nstoolbar nstoolbaritem

我在我的窗口中添加了一个 NSToolbar 并插入了一些项目。其中两个包含一个自定义 View (NSTextFiled 作为标签和一个 NSButton)。我已经为这两个项目设置了最大和最小宽度,它们显示良好,但它们比需要的要大得多,使标签特别是按钮大得令人讨厌,并且有不需要的空间。

Button too big

我正在寻找一种方法来将按钮及其项目的宽度设置为其包含的文本所需的最小值。

最佳答案

在尝试之后,我还为 NSToolbarItem 添加了一个 socket ,并使用以下函数更改文本:

@IBOutlet weak var manageSessionItem: NSToolbarItem!
@IBOutlet weak var manageSession: NSButton!

func setManageSessionTitle(title: String) {
    let s: NSString = title
    let attr=[NSFontAttributeName: manageSession.font!]
    //Add width to compensate for button graphics
    let w=s.sizeWithAttributes(attr).width + 20

    manageSession.frame.size.width = w
    manageSessionItem.minSize.width = w
    manageSessionItem.maxSize.width = w

    manageSession.title = title
}

关于macos - NSToolbarItem 拉伸(stretch)到最小宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31805013/

相关文章:

ios - Xcode - 如何修复 'NSUnknownKeyException',原因 : … this class is not key value coding-compliant for the key X"error?

swift - 如何在单元测试中访问类属性

swift - Key-Value-Observing 闭包从不调用 bool 属性

swift - 如何在 Catalyst 中添加 `toggleSidebar` NSToolbarItem?

.net - 在带有 m1 的 mac 上使用 .net framework 4.6.1

Mac 上的 Eclipse 开发

Objective-C NSKeyedUnarchiver 卸载

swift - 程序流程问题

ios - 约束在 iPhone X 与 8 上表现异常(Xcode Bug?)

swift - 在 Swift 中 NSToolbar 的上下文菜单中仅显示 "Customize Toolbar..."