隐藏NSWindow新标签按钮

时间:2016-10-20 10:39:42

标签: cocoa tabs nswindow nsdocument macos-sierra

在macOS 10.12中,有一个新的标签栏添加到NSWindows中,用于NSDocument应用程序。您可以阻止工具栏显示(请参阅How do I disable the Show Tab Bar menu option in Sierra apps?)。但是如何删除“+”按钮以添加新的Windows?

3 个答案:

答案 0 :(得分:4)

根据AppKit发行说明,在NSDocumentController子类中返回false响应newWindowForTab(_:)操作消息会禁用标签栏中的“+”按钮。

override func responds(to aSelector: Selector!) -> Bool {

    if #available(OSX 10.12, *) {
        if aSelector == #selector(NSResponder.newWindowForTab(_:)) {
            return false
        }
    }

    return super.responds(to: aSelector)
}

请参阅AppKit Release Notes for macOS 10.12中的“新按钮”部分。

答案 1 :(得分:0)

只需在Interface Builder中为您的NSWindow设置'Tabbing Mode'不允许使用。

Screenshot of Interface Builder with Tabbing Mode set to Disallowed for a Window

答案 2 :(得分:0)

更改此

@IBAction override func newWindowForTab(_ sender: Any?) {}

进入

@IBAction func myButton(_ sender: Any?) {}

这将隐藏加号按钮。该选项卡仍然有效