如何以编程方式将新的 NSToolbarItem 添加到现有工具栏?

发布于 2024-12-03 08:01:50 字数 152 浏览 0 评论 0原文

我正在寻找一种名为 addNewItem:(NSToolbarItem *)item 的方法或类似的方法,可以让我向工具栏添加以编程方式创建的项目,但我还没有找到。我想添加一个项目,当用户点击它时显示一个弹出窗口,就像在 Safari 中当用户下载某些东西时一样。

I'm looking for a method called addNewItem:(NSToolbarItem *)item or something like this that lets me add a programmatically created item to my toolbar, but I haven't found any. I would like to add an item that shows a popover when the user clicks on it, like in Safari when the user downloads something.

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

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

发布评论

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

评论(1

国产ˉ祖宗 2024-12-10 08:01:50

您需要有一个符合 NSToolbarDelegate 协议的类,并让该类的一个实例作为工具栏的委托。例如,此委托将实现 -toolbar:itemForItemIdentifier:willBeInsertedIntoToolbar:,它返回给定标识符的 NSToolbarItem 实例,可能会按需创建该项目。通过执行此操作,您可以准备委托在工具栏要求其提供与标识符对应的项目时返回工具栏项目。

完成此操作后,您可以通过将 -[NSToolbar insertItemWithItemIdentifier:atIndex] 发送到工具栏实例,以编程方式将新的工具栏项添加到工具栏。标识符字符串参数应与上一段中使用的匹配。如果您需要删除某个项目,请将 -[NSToolbar removeItemAtIndex:] 发送到工具栏。

添加和删除工具栏项目工具栏编程主题的 > 部分可可文档。

You need to have a class that conforms to the NSToolbarDelegate protocol and have an instance of that class be the delegate of your toolbar. This delegate would, for example, implement -toolbar:itemForItemIdentifier:willBeInsertedIntoToolbar:, which returns an NSToolbarItem instance for a given identifier, potentially creating that item on demand. By doing this, you’re preparing your delegate to return a toolbar item when the toolbar asks it for the item corresponding to an identifier.

Having done that, you can programatically add a new toolbar item to the toolbar by sending -[NSToolbar insertItemWithItemIdentifier:atIndex] to the toolbar instance. The identifier string argument should match the one used in the paragraph above. If you need to remove an item, send -[NSToolbar removeItemAtIndex:] to the toolbar.

This is described with examples in the Adding and Removing Toolbar Items section of the Toolbar Programming Topics for Cocoa document.

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