我在继承NSObject <NSToolbarDelegate>
的接口内以编程方式添加工具栏,并实现这些方法:
- (NSToolbarItem*)toolbar:(NSToolbar*)toolbar itemForItemIdentifier:(NSString *)itemIdentifier willBeInsertedIntoToolbar:(BOOL)willBeInsertedIntoToolbar;
- (NSArray *)toolbarSelectableItemIdentifiers: (NSToolbar*)toolbar
- (NSArray *)toolbarAllowedItemIdentifiers:(NSToolbar *)toolbar
- (NSArray *)toolbarDefaultItemIdentifiers:(NSToolbar *)toolbar
我还通过在NSToolbarItem上调用setView
来添加一个按钮。此视图包含NSButton并位于.XIB接口中。
但是,由于[{3}}中描述的原因,同一项目上的setAction
无效。
如何实施此解决方案?
答案 0 :(得分:2)
您可以在nib文件本身中设置NSButton
的目标和操作,或者如果您需要以编程方式执行此操作,则为IBOutlet
创建NSButton
并执行此操作在代码中。
当您在工具栏项目中使用NSButton
时,它会在您的界面中的任何其他位置有效地表现为NSButton
,而不是NSToolbarItem
本身。例如,您无法通过使用标准-validateToolbarItem:
或-validateUserInterfaceItem:
轻松禁用或启用按钮;相反,你需要对问题按钮IBOutlet
,或者使用绑定来启用或禁用按钮。