1

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

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

我还通过调用setViewNSToolbarItem 添加了一个按钮。此视图包含一个 NSButton 并位于 .XIB 界面中。

但是,setAction由于http://www.cocoabuilder.com/archive/cocoa/291782-nstoolbaritem-custom-view-setaction.html#291783中描述的原因,在同一项目上不起​​作用。

如何实施此解决方案?

4

1 回答 1

2

您可以在 nib 文件本身中设置目标和操作NSButton,或者如果您需要以编程方式执行,然后创建一个IBOutletNSButton在代码中执行。

当您使用NSButton在工具栏项中使用 an 时,它实际上就像NSButton您界面中其他任何地方的那样,而不是NSToolbarItem本身。例如,您将无法通过使用标准-validateToolbarItem:或轻松禁用或启用按钮-validateUserInterfaceItem:;相反,您需要有一个有IBOutlet问题的按钮,或者使用绑定来启用或禁用该按钮。

于 2011-08-23T14:59:41.543 回答