web-dev-qa-db-ja.com

Sierraアプリで[タブバーを表示]メニューオプションを無効にするにはどうすればよいですか?

NSWindowのツールバーを使用するアプリがあります。美的理由から、ユーザーがこのツールバーをカスタマイズできないようにしたいと思います。シエラには、Show Tab Barと呼ばれる「メニュー>表示」に挿入される新しいメニューオプションがあります。これを無効にするにはどうすればよいですか?アイコンの下に余分なラベルが表示されていないため、有効にするとツールバーの高さが高くなるだけのようです。

16
strangetimes

10.12では、タブバーがデフォルトで使用できるようになったため、ウィンドウを作成するときに次のように設定する必要があります。

[NSWindow setAllowsAutomaticWindowTabbing: NO];
10
strangetimes

これは、IB、ウィンドウの属性インスペクターでも実行できます。

NSWindow attribute inspector

29
leonaka

最新のフレームワークに対してコンパイルしたくない場合は、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"];
    }
}
4
Ely

個々のウィンドウでタブを無効にするには、setTabbingMode:を呼び出します。

if([window respondsToSelector:@selector(setTabbingMode:)]) {
    // this particular window doesn't support tabbing in Sierra.
    [window setTabbingMode:NSWindowTabbingModeDisallowed];
}
4
adib

迅速なソリューション:

override func awakeFromNib() {
    super.awakeFromNib()
    if #available(OSX 10.12, *) {
        tabbingMode = .disallowed
    }
}
3
Matej Ukmar

Swift 5

あなたのNSWindowController

self.window?.tabbingMode = .disallowed
0
ixany