我在继承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接口中。
然而,由于http://www.cocoabuilder.com/archive/cocoa/291782-nstoolbaritem-custom-view-setaction.html#291783中描述的原因,同一项上的setAction
不起作用。
我如何实现这个解决方案?
您可以在nib文件本身中设置NSButton
的目标和操作,或者如果您需要以编程方式执行,则创建IBOutlet
到NSButton
并在代码中执行。
当您在工具栏项中使用NSButton
时,它的有效作用就像NSButton
在界面中的其他地方一样,而不是作为NSToolbarItem
本身。例如,您将无法通过使用标准-validateToolbarItem:
或-validateUserInterfaceItem:
轻松禁用或启用按钮;相反,您需要为所讨论的按钮设置一个IBOutlet
,或者使用绑定来启用或禁用按钮。