如何禁用 Sierra 应用程序中的“显示选项卡栏”菜单选项?
How do I disable the Show Tab Bar menu option in Sierra apps?
我有一个在 NSWindow 中使用工具栏的应用程序。我不希望用户出于审美原因能够自定义此工具栏。在 Sierra 中,有一个新的菜单选项被插入到 "Menu > View" 中,名为 Show Tab Bar
。我该如何禁用它?启用它似乎只会增加工具栏的高度,因为我没有在图标下方显示额外的标签。
在 10.12 上,您现在需要在创建 window 时设置以下内容,因为标签栏现在默认可用:
[NSWindow setAllowsAutomaticWindowTabbing: NO];
Swift和SwiftUI
答案相同
func applicationWillFinishLaunching(_ notification: Notification) {
NSWindow.allowsAutomaticWindowTabbing = false
}
请注意,调用是在 class NSWindow
上进行的,而不是在 NSWindow
的实例上进行的
如果你不想针对最新的框架进行编译,你可以在你的 NSWindowsController sub 类:
中使用下面的代码
Swift:
override func awakeFromNib() {
if NSAppKitVersionNumber > 1500 {
self.window?.setValue(2, forKey: "tabbingMode")
}
}
Objective-C:
- (void)awakeFromNib {
if (NSAppKitVersionNumber > 1500) {
[self.window setValue:[NSNumber numberWithInt:2] forKey:@"tabbingMode"];
}
}
您也可以在 Window 的属性检查器
的 IB 上执行此操作
要禁用单个 windows 的 Tab 键,请调用 setTabbingMode:
if([window respondsToSelector:@selector(setTabbingMode:)]) {
// this particular window doesn't support tabbing in Sierra.
[window setTabbingMode:NSWindowTabbingModeDisallowed];
}
Swift 解决方案:
override func awakeFromNib() {
super.awakeFromNib()
if #available(OSX 10.12, *) {
tabbingMode = .disallowed
}
}
Swift 5
在你的NSWindowController
中:
self.window?.tabbingMode = .disallowed
我有一个在 NSWindow 中使用工具栏的应用程序。我不希望用户出于审美原因能够自定义此工具栏。在 Sierra 中,有一个新的菜单选项被插入到 "Menu > View" 中,名为 Show Tab Bar
。我该如何禁用它?启用它似乎只会增加工具栏的高度,因为我没有在图标下方显示额外的标签。
在 10.12 上,您现在需要在创建 window 时设置以下内容,因为标签栏现在默认可用:
[NSWindow setAllowsAutomaticWindowTabbing: NO];
Swift和SwiftUI
答案相同func applicationWillFinishLaunching(_ notification: Notification) {
NSWindow.allowsAutomaticWindowTabbing = false
}
请注意,调用是在 class NSWindow
上进行的,而不是在 NSWindow
如果你不想针对最新的框架进行编译,你可以在你的 NSWindowsController sub 类:
中使用下面的代码Swift:
override func awakeFromNib() {
if NSAppKitVersionNumber > 1500 {
self.window?.setValue(2, forKey: "tabbingMode")
}
}
Objective-C:
- (void)awakeFromNib {
if (NSAppKitVersionNumber > 1500) {
[self.window setValue:[NSNumber numberWithInt:2] forKey:@"tabbingMode"];
}
}
您也可以在 Window 的属性检查器
的 IB 上执行此操作要禁用单个 windows 的 Tab 键,请调用 setTabbingMode:
if([window respondsToSelector:@selector(setTabbingMode:)]) {
// this particular window doesn't support tabbing in Sierra.
[window setTabbingMode:NSWindowTabbingModeDisallowed];
}
Swift 解决方案:
override func awakeFromNib() {
super.awakeFromNib()
if #available(OSX 10.12, *) {
tabbingMode = .disallowed
}
}
Swift 5
在你的NSWindowController
中:
self.window?.tabbingMode = .disallowed