不起作用:NSToolbarItem +自定义视图 +设置动作:

发布于 2024-12-01 00:47:31 字数 870 浏览 1 评论 0原文

我以编程方式在继承 NSObject 的界面内添加一个工具栏,并实现这些方法:

- (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

我该如何实施这个解决方案?

I'm adding a toolbar programmatically inside an interface inheriting NSObject <NSToolbarDelegate>, and implementing these methods:

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

I also add a button by calling setView on a NSToolbarItem. This view contains an NSButton and is in the .XIB interface.

However, setAction on the same item does not work, due to reason described at http://www.cocoabuilder.com/archive/cocoa/291782-nstoolbaritem-custom-view-setaction.html#291783.

How do I implement this solution?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

爱情眠于流年 2024-12-08 00:47:31

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

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

You could set the target and action of the NSButton in the nib file itself, or if you need to do it programmatically, then create an IBOutlet to the NSButton and do it in code.

When you use an NSButton in a toolbar item, it effectively acts like an NSButton would anywhere else in your interface, rather than as an NSToolbarItem per se. For example, you won't be able to easily disable or enable the button through the use of the standard -validateToolbarItem: or -validateUserInterfaceItem:; rather, you'll need to have an IBOutlet to the button in question, or otherwise use bindings to enable or disable the button.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文