1

を継承するインターフェイス内にプログラムでツールバーを追加し、NSObject <NSToolbarDelegate>次のメソッドを実装しています。

- (NSToolbarItem*)toolbar:(NSToolbar*)toolbar itemForItemIdentifier:(NSString *)itemIdentifier willBeInsertedIntoToolbar:(BOOL)willBeInsertedIntoToolbar;
- (NSArray *)toolbarSelectableItemIdentifiers: (NSToolbar*)toolbar
- (NSArray *)toolbarAllowedItemIdentifiers:(NSToolbar *)toolbar 
- (NSArray *)toolbarDefaultItemIdentifiers:(NSToolbar *)toolbar

setViewまた、NSToolbarItemを呼び出してボタンを追加します。このビューにはNSButtonが含まれており、.XIBインターフェイスにあります。

ただし、http://www.cocoabuilder.com/archive/cocoa/291782-nstoolbaritem-custom-view-setaction.html#291783setActionに記載されている理由により、同じアイテムでは機能しません。

このソリューションを実装するにはどうすればよいですか?

4

1 に答える 1

2

nibファイル自体でのターゲットとアクションを設定できNSButtonます。プログラムで実行する必要がある場合は、を作成しIBOutletNSButtonコードで実行します。

NSButtonツールバー項目でを使用すると、それ自体NSButtonではなく、インターフェイスの他の場所と同じように効果的に機能します。NSToolbarItemたとえば、標準-validateToolbarItem:または-validateUserInterfaceItem:;を使用してボタンを簡単に無効または有効にすることはできません。むしろ、IBOutlet問題のボタンにを設定する必要があります。そうでない場合は、バインディングを使用してボタンを有効または無効にする必要があります。

于 2011-08-23T14:59:41.543 に答える