如何禁用 Sierra 应用程序中的“显示标签栏”菜单选项?
Posted
技术标签:
【中文标题】如何禁用 Sierra 应用程序中的“显示标签栏”菜单选项?【英文标题】:How do I disable the Show Tab Bar menu option in Sierra apps? 【发布时间】:2017-01-16 21:28:48 【问题描述】:我有一个在 NSWindow 中使用工具栏的应用程序。出于美学原因,我不希望用户能够自定义此工具栏。在 Sierra 中有一个新的菜单选项,它被插入到名为 Show Tab Bar
的“菜单 > 视图”中。如何禁用此功能?启用它似乎只会增加工具栏的高度,因为我没有在图标下显示额外的标签。
【问题讨论】:
【参考方案1】:您也可以在 IB 上的 Window 的属性检查器上执行此操作
【讨论】:
非常感谢。这对我有帮助。 这个屏幕到底在哪里?【参考方案2】:在 10.12 上,您现在需要在创建窗口时设置以下内容,因为 Tab Bar 现在默认可用:
[NSWindow setAllowsAutomaticWindowTabbing: NO];
答案在 Swift 和 SwiftUI 中是一样的
func applicationWillFinishLaunching(_ notification: Notification)
NSWindow.allowsAutomaticWindowTabbing = false
请注意,调用是在 NSWindow
类上进行的,而不是在 NSWindow
的实例上进行的
【讨论】:
在 10.15 上,这种方法似乎不再存在。相反,您可以将窗口的tabbingMode
设置为.disallowed
。特别将window.tabbingMode = .disallowed
添加到NSApplicationDelegate
的applicationDidFinishLaunching
方法似乎有效。
上述评论不正确,似乎他们可能试图在窗口实例而不是 NSWindow 类上调用allowsAutomaticWindowTabbing
。在 swift 和 swiftui 中,您仍然可以调用 NSWindow.allowsAutomaticWindowTabbing = false
在所有应用程序窗口中完全删除这些项目,而不是为单个窗口禁用它们。【参考方案3】:
如果您不想针对最新的框架进行编译,可以在 NSWindowsController 子类中使用以下代码:
斯威夫特:
override func awakeFromNib()
if NSAppKitVersionNumber > 1500
self.window?.setValue(2, forKey: "tabbingMode")
目标-C:
- (void)awakeFromNib
if (NSAppKitVersionNumber > 1500)
[self.window setValue:[NSNumber numberWithInt:2] forKey:@"tabbingMode"];
【讨论】:
这是NSAppKitVersion.current.rawValue > NSAppKitVersion.macOS10_12.rawValue
Swift 4
@ctietze:我的答案仅在使用旧版本的 Xcode 和 Swift 时才相关【参考方案4】:
要禁用单个窗口上的选项卡,请调用 setTabbingMode:
if([window respondsToSelector:@selector(setTabbingMode:)])
// this particular window doesn't support tabbing in Sierra.
[window setTabbingMode:NSWindowTabbingModeDisallowed];
【讨论】:
【参考方案5】:快速解决方案:
override func awakeFromNib()
super.awakeFromNib()
if #available(OSX 10.12, *)
tabbingMode = .disallowed
【讨论】:
或者,如果您有应用委托,请在创建 NSWindow 后添加行window.tabbingMode = .disallowed
。【参考方案6】:
斯威夫特 5
在你的NSWindowController
:
self.window?.tabbingMode = .disallowed
【讨论】:
以上是关于如何禁用 Sierra 应用程序中的“显示标签栏”菜单选项?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 iMessage iOS 11(或 iOS10、Macos Sierra)中禁用 URL 链接预览