问题
I've got an app that uses a Toolbar in a NSWindow. I don't want users to be able to customize this toolbar for aesthetic reasons. In Sierra there's a new Menu option that gets inserted into "Menu > View" called Show Tab Bar
. How do I disable this? Enabling it only seems to increase the tool bar's height as I don't have extra labels showing under the icons.
回答1:
You can also do this on IB, on the Window’s attributes inspector
回答2:
On 10.12, you need to now set the following when the window is created as Tab Bar is now available by default:
[NSWindow setAllowsAutomaticWindowTabbing: NO];
回答3:
If you don't want to compile against the latest frameworks, you can use the following code in your NSWindowsController sub classes:
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"];
}
}
回答4:
To disable tabbing on individual windows call setTabbingMode:
if([window respondsToSelector:@selector(setTabbingMode:)]) {
// this particular window doesn't support tabbing in Sierra.
[window setTabbingMode:NSWindowTabbingModeDisallowed];
}
回答5:
Swift solution:
override func awakeFromNib() {
super.awakeFromNib()
if #available(OSX 10.12, *) {
tabbingMode = .disallowed
}
}
来源:https://stackoverflow.com/questions/39399553/how-do-i-disable-the-show-tab-bar-menu-option-in-sierra-apps