2009-02-19 28 views

回答

13

爲了擴大查克的答案,你只需要讓你的控制器成爲你的NSToolBar的委託並在其中實現toolbarSelectableItemIdentifiers:委託方法。例如,下面的實施將讓你留住每個工具欄項目選擇的亮點除了一個標有「檢查」:

- (NSArray *)toolbarSelectableItemIdentifiers:(NSToolbar *)toolbar 
{ 
    NSMutableArray *allIdentifiers = [[NSMutableArray alloc] init]; 

    for (NSToolbarItem *toolbarItem in [toolbar items]) 
    { 
     if (![[toolbarItem label] isEqualToString:@"Inspect"]) 
      [allIdentifiers addObject:[toolbarItem itemIdentifier]]; 
    } 

    return [allIdentifiers autorelease]; 
} 

我緩存在一個實例變量的allIdentifiers陣列時,我做這樣的事情,所以我只需要做一次陣列構建。

+1

在Xcode 4的界面生成器中,當您點擊可選擇的工具欄項目時,現在會出現一個複選框,但檢查它似乎什麼也不做。有任何想法嗎? – Tony 2012-01-31 22:34:03

+0

@Tony - 剛剛在Interface Builder中嘗試了這個功能,即使沒有上面的代碼,它也能正常工作。不知道爲什麼它不適合你的情況。 – 2012-02-10 22:15:35

8

如果您在界面構建器中創建了工具欄,則可以單擊各個NSToolbarItems並在Inspector中選中要選擇該選項的可選框。無需代碼。