validateToolbarItem:
ツールバー項目を使用可能にするかを返します
-(BOOL)validateToolbarItem:(NSToolbarItem *)theItem:
解説
ツールバー項目を使用可能にするかを返します。
返り値
( BOOL )
YES/NO
引数
( NSToolbarItem * )theItem
ツールバー項目
フレームワーク
ApplicationKit
クラス
NSToolbarItemValidation
Instance Methods
使用可能
10.0
参照
-elseチェーンを実装しなければならない。そして、theItemのアクションとtheItemによって使われるものでありえたレシーバーのアクション・メソッドの各々のセレクターとの間に同等を探す。
例文
#import "MyDocument.h" //独自のツールバー項目のID static NSString* MyDocToolbarIdentifier = @"MyDocToolbarIdentifier"; @interface MyDocument (Private) - (void)loadTextViewWithInitialData:(NSData *)data; - (void)setupToolbar; -(void)myToolBar:(id)sender; @end @implementation MyDocument - (BOOL)validateToolbarItem:(NSToolbarItem *)theItem { return NO; } //windowNib名 - (NSString *)windowNibName { return @"MyDocument"; } //ウインドウコントローラがNibファイルから - (void)windowControllerDidLoadNib:(NSWindowController *) aController { [super windowControllerDidLoadNib:aController]; [documentWindow makeFirstResponder: documentTextView]; [documentWindow setFrameUsingName: @"MyDocumentWindow"]; [documentWindow setFrameAutosaveName: @"MyDocumentWindow"]; if (dataFromFile!=nil) { [self loadTextViewWithInitialData: dataFromFile]; [dataFromFile autorelease]; dataFromFile = nil; } [self setupToolbar]; } //ツールバーのセットアップ - (void) setupToolbar { NSToolbar *toolbar = [[[NSToolbar alloc] initWithIdentifier: MyDocToolbarIdentifier] autorelease]; [toolbar setAllowsUserCustomization: YES];//カスタマイズできるか [toolbar setAutosavesConfiguration: YES];//設定を自動保存するか [toolbar setDisplayMode: NSToolbarDisplayModeIconOnly];//表示モードの設定 [toolbar setDelegate: self];//デリゲート [documentWindow setToolbar: toolbar];//ウインドウにセットする } //ツールバー項目のセット - (NSToolbarItem *) toolbar: (NSToolbar *)toolbar itemForItemIdentifier: (NSString *) itemIdent willBeInsertedIntoToolbar:(BOOL) willBeInserted { NSToolbarItem *toolbarItem = [[[NSToolbarItem alloc] initWithItemIdentifier: itemIdent] autorelease]; [toolbarItem setLabel: @"CustomItem"];//ツールバーのラベル [toolbarItem setPaletteLabel: @"paletteCustomItem"];//カスタムパレットラベル [toolbarItem setToolTip: @"CustomItem"];//ツールティップ [toolbarItem setImage: [NSImage imageNamed: @"CustomItemImage"]];//アイコン [toolbarItem setTarget: self];//ターゲット [toolbarItem setAction: @selector(myToolBar:)];//セレクタ return toolbarItem; } //デフォルトのツールーバー配置 - (NSArray *) toolbarDefaultItemIdentifiers: (NSToolbar *) toolbar { return [NSArray arrayWithObjects: MyDocToolbarIdentifier,//独自のツールバー項目 NSToolbarShowColorsItemIdentifier,//カラーパレット NSToolbarPrintItemIdentifier,//プリントパネル NSToolbarSeparatorItemIdentifier,//セパレータ NSToolbarShowFontsItemIdentifier,//フォントパネル NSToolbarFlexibleSpaceItemIdentifier,//固定スペース NSToolbarSpaceItemIdentifier,//スペース NSToolbarCustomizeToolbarItemIdentifier,//カスタマイズ nil]; } - (NSArray *) toolbarAllowedItemIdentifiers: (NSToolbar *) toolbar { return [NSArray arrayWithObjects:NSToolbarPrintItemIdentifier, NSToolbarShowColorsItemIdentifier, NSToolbarShowFontsItemIdentifier, NSToolbarCustomizeToolbarItemIdentifier, NSToolbarFlexibleSpaceItemIdentifier, NSToolbarSpaceItemIdentifier, NSToolbarSeparatorItemIdentifier, nil]; } -(void)myToolBar:(id)sender { NSLog([[sender toolbar] className]); } @end