macOS/iOS API解説

iOS , Mac アプリケーション開発のために使われる主要フレームワークの日本語情報です。2010年代に書かれた内容です。今後更新はありません。

目次

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