5

アプリのNSToolbarの後に「2番目の行」を追加しようとしています。これはタイトルバーの一部のままです。例として、MailにはNSToolbarの下に細い灰色の仕切り線があり、その下にいくつかの追加アイテムがあります。具体的には、ウィンドウがフルスクリーンモードになっている場合、その2番目の「行」はシステムメニューバーの下にスライドするときにタイトルバーに接続されたままになります。Xcodeにも同様の話があります。

ここに画像の説明を入力してください ここに画像の説明を入力してください ここに画像の説明を入力してください ここに画像の説明を入力してください

NSWindowをテクスチャに設定し、2番目の行のコントロールをウィンドウのコンテンツビューに直接配置してみました。これはウィンドウモードではほとんど正しいように見えますが、フルスクリーンモードで下にスライドすると、もちろんこれらのコントロールはツールバーにアタッチされて表示されません。では、どうすればMailやXcodeと同じ動作を実現できますか?私は多くのツールバーカスタマイズコードを見てきましたが、どれもこの特定のケースを実際にカバーしていません。

ここに画像の説明を入力してください ここに画像の説明を入力してください

4

3 に答える 3

5

fullScreenAccessoryViewmacOS10.10では非推奨です

最近のバージョンのmacOSでこれを行うには、のaddTitlebarAccessoryViewControllerメソッドを使用しNSWindowて、のサブクラスを渡しますNSTitlebarAccessoryViewController

例えば:

NSTitlebarAccessoryViewController *accessoryViewController = [[NSStoryboard storyboardWithName:@"Main" bundle:nil] instantiateControllerWithIdentifier:@"AccessoryViewController"];
[self.mainWindowController.window addTitlebarAccessoryViewController:accessoryViewController];
于 2017-10-14T03:39:19.420 に答える
3

私がする必要があった[NSToolbar setFullScreenAccessoryView:]のは、ツールバーの下のビューを呼び出すことでした。これにより、私が目指していた動作が得られます。この方法については、 NSToolbarのドキュメントを参照してください。

于 2012-12-07T22:34:46.393 に答える
0

1つ目は通常のツールバーです。2番目のツールバーでは、目的の高さの別のビューを作成して、メインのランディングウィンドウに追加できます。

于 2012-12-05T03:43:00.760 に答える