3

NSToolbar が存在する領域を完全に引き継いで、独自のカスタム コントロール、ビュー、および背景を配置できるようにするのが好きです。この領域を使用する利点は次のとおりです。

  • スライド パネルは、タイトル バーだけでなく、ツールバー領域の下に表示されます。
  • Lion では、マウスが画面の上部にあるとき、ツールバー領域はメニュー バーと一緒に下がります。

ボーダレス ウィンドウを使用して、その中に独自のカスタム ビューを実装しようとしましたが、残念ながら、上記の利点が失われるだけでなく、他にもいくつかの小さな問題があります。

私の現在の方法は、文書化されていないメソッド '_toolbarView' を NSToolbar で使用し、カスタム ビューをそのサブビューに追加することです。ツールバーのカスタマイズをオフにできるので、これはうまく機能します。残念ながら、ツールバーのサイズは、そのツールバー内の項目で初期化されます。偽の ToolbarItem を追加せずにツールバーのサイズを変更できるかどうかは誰にもわかりませんか?

たぶん、私が現在気づいていない、これを行うためのより良い方法もあります。提案やコメントをありがとう。

4

1 に答える 1

5

文書化されていない API を使用する必要はありません。カスタム ビューでツールバー項目を作成するだけです。

- (NSToolbarItem *)toolbar:(NSToolbar *)toolbar itemForItemIdentifier:(NSString *)itemIdentifier willBeInsertedIntoToolbar:(BOOL)flag {
    NSToolbarItem *item = [[[NSToolbarItem alloc] initWithItemIdentifier:itemIdentifier] autorelease];
    …
    [item setView:myCustomToolbarView];
    …
}

カスタム ツールバーのサイズは、アイテムのminSizeおよびmaxSizeプロパティを使用して制御できます (たとえば、NSWindowDelegateの内-windowDidResize:)。

アイテム ラベルが表示されないように、ツールバーの表示モードも更新することを忘れないでください。

[toolbar setDisplayMode: NSToolbarDisplayModeIconOnly];
于 2011-08-15T07:33:12.333 に答える