не работает: NSToolbarItem + пользовательский вид + setAction: - PullRequest
1 голос
/ 23 августа 2011

Я добавляю панель инструментов программно в интерфейс, наследующий 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.

Однако setAction для того же элемента не работает по причине, описанной в http://www.cocoabuilder.com/archive/cocoa/291782-nstoolbaritem-custom-view-setaction.html#291783.

Как мне реализовать это решение?

1 Ответ

2 голосов
/ 23 августа 2011

Вы можете установить цель и действие NSButton в самом файле пера, или, если вам нужно сделать это программно, затем создать IBOutlet для NSButton и сделать это в коде.

Когда вы используете NSButton в элементе панели инструментов, он фактически действует как NSButton в любом месте вашего интерфейса, а не как NSToolbarItem как таковой.Например, вы не сможете легко отключить или включить кнопку с помощью стандартных -validateToolbarItem: или -validateUserInterfaceItem:;скорее, вам нужно иметь IBOutlet для рассматриваемой кнопки или иным образом использовать привязки для включения или отключения кнопки.

...