ページ

2008年9月3日水曜日

ツールバー(その5)

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク

アイコンを増やしてみる。


画像を用意し、識別子を定義し、そして toolbar:itemForItemIdentifier:willBeInsertedIntoToolbar: 内で NSToolbarItem を定義すれば簡単に追加できる。

- (NSToolbarItem *)toolbar:(NSToolbar *)toolbar itemForItemIdentifier:(NSString *)itemIdentifier willBeInsertedIntoToolbar:(BOOL)flag
{
NSToolbarItem *toolbarItem = [[[NSToolbarItem alloc] initWithItemIdentifier:itemIdentifier] autorelease];

if ([itemIdentifier isEqual:@"HELLO"]) {
[toolbarItem setLabel:@"Hello"];
[toolbarItem setImage:[NSImage imageNamed:@"hello"]];

[toolbarItem setTarget:self];
[toolbarItem setAction:@selector(hello:)];

} else if ([itemIdentifier isEqual:@"USA"]) {
[toolbarItem setLabel:@"USA"];
[toolbarItem setImage:[NSImage imageNamed:@"USA"]];

[toolbarItem setTarget:self];
[toolbarItem setAction:@selector(hello:)];


} else if ([itemIdentifier isEqual:@"JAPAN"]) {
[toolbarItem setLabel:@"Japan"];
[toolbarItem setImage:[NSImage imageNamed:@"Japan"]];

[toolbarItem setTarget:self];
[toolbarItem setAction:@selector(hello:)];


} else {
toolbarItem = nil;
}
return toolbarItem;
}




プリファレンスダイアログでよくあるように選択状態にすることもできる。




Delegateメソッド toolbarSelectableItemIdentifiers: を実装すればこれも簡単にできる。
-(NSArray*)toolbarSelectableItemIdentifiers:(NSToolbar*)toolbar
{
return [NSArray arrayWithObjects:@"HELLO", @"JAPAN", @"USA", nil];
}



selectedItemIdentifier: を使えば、現在どの ToolbarItemが選択されているのかが分かる。



サンプル:
ToolBar-02.zip