У меня есть приложение, которое использует панель инструментов в NSWindow. Я не хочу, чтобы пользователи могли настраивать эту панель по эстетическим соображениям. В Сьерре есть новый пункт меню, который вводится в "Меню > Вид" под названием Show Tab Bar
. Как отключить это? Включение этого только, кажется, увеличивает высоту панели инструментов, поскольку у меня нет дополнительных ярлыков, показываемых под значками.
Как отключить параметр меню "Показать панель табуляции" в приложениях Sierra?
Ответ 1
В 10.12 вам нужно установить следующее, когда окно создается, поскольку панель вкладок теперь доступна по умолчанию:
[NSWindow setAllowsAutomaticWindowTabbing: NO];
Ответ 2
Вы также можете сделать это в IB, в инспекторе атрибутов Windows
Ответ 3
Если вы не хотите компилироваться в отношении последних фреймворков, вы можете использовать следующий код в подклассах NSWindowsController:
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
Чтобы отключить табуляцию на отдельных вызовах Windows setTabbingMode:
if([window respondsToSelector:@selector(setTabbingMode:)]) {
// this particular window doesn't support tabbing in Sierra.
[window setTabbingMode:NSWindowTabbingModeDisallowed];
}
Ответ 5
Решение Swift:
override func awakeFromNib() {
super.awakeFromNib()
if #available(OSX 10.12, *) {
tabbingMode = .disallowed
}
}