不起作用:NSToolbarItem +自定义视图+ setAction:

时间:2011-08-23 14:42:50

标签: cocoa nsview nsbutton nstoolbaritem

我在继承NSObject <NSToolbarDelegate>的接口内以编程方式添加工具栏,并实现这些方法:

- (NSToolbarItem*)toolbar:(NSToolbar*)toolbar itemForItemIdentifier:(NSString *)itemIdentifier willBeInsertedIntoToolbar:(BOOL)willBeInsertedIntoToolbar;
- (NSArray *)toolbarSelectableItemIdentifiers: (NSToolbar*)toolbar
- (NSArray *)toolbarAllowedItemIdentifiers:(NSToolbar *)toolbar 
- (NSArray *)toolbarDefaultItemIdentifiers:(NSToolbar *)toolbar

我还通过在NST​​oolbarItem上调用setView来添加一个按钮。此视图包含NSButton并位于.XIB接口中。

但是,由于[{3}}中描述的原因,同一项目上的setAction无效。

如何实施此解决方案?

1 个答案:

答案 0 :(得分:2)

您可以在nib文件本身中设置NSButton的目标和操作,或者如果您需要以编程方式执行此操作,则为IBOutlet创建NSButton并执行此操作在代码中。

当您在工具栏项目中使用NSButton时,它会在您的界面中的任何其他位置有效地表现为NSButton,而不是NSToolbarItem本身。例如,您无法通过使用标准-validateToolbarItem:-validateUserInterfaceItem:轻松禁用或启用按钮;相反,你需要对问题按钮IBOutlet,或者使用绑定来启用或禁用按钮。