NSWindowのツールバーを使用するアプリがあります。美的理由から、ユーザーがこのツールバーをカスタマイズできないようにしたいと思います。シエラには、Show Tab Bar
と呼ばれる「メニュー>表示」に挿入される新しいメニューオプションがあります。これを無効にするにはどうすればよいですか?アイコンの下に余分なラベルが表示されていないため、有効にするとツールバーの高さが高くなるだけのようです。
10.12では、タブバーがデフォルトで使用できるようになったため、ウィンドウを作成するときに次のように設定する必要があります。
[NSWindow setAllowsAutomaticWindowTabbing: NO];
最新のフレームワークに対してコンパイルしたくない場合は、NSWindowsControllerサブクラスで次のコードを使用できます。
迅速:
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"];
}
}
個々のウィンドウでタブを無効にするには、setTabbingMode:
を呼び出します。
if([window respondsToSelector:@selector(setTabbingMode:)]) {
// this particular window doesn't support tabbing in Sierra.
[window setTabbingMode:NSWindowTabbingModeDisallowed];
}
迅速なソリューション:
override func awakeFromNib() {
super.awakeFromNib()
if #available(OSX 10.12, *) {
tabbingMode = .disallowed
}
}
Swift 5
あなたのNSWindowController
:
self.window?.tabbingMode = .disallowed