设置NSToolbarItem未选中

时间:2016-05-17 15:57:11

标签: objective-c macos cocoa nstoolbar nstoolbaritem

我目前正在尝试使用可选 NSToolbar定义NSToolbarItems,它代表绘图OSX应用程序中的工具。我希望用户能够选择并取消选择要通过单击使用的工具(NSToolbarItems)

如果你碰巧知道Sketch,那就是我正在寻找的工具栏行为:

Selected Tool Screenshot

在上图中,您可以看到"编辑"选择的工具。如果再次单击该项,则会取消选择该项:

Unselected Tool Screenshot

我一直在阅读工具栏的Apple文档,并且找不到有关如何实现这种能够选择/取消选择工具栏项的效果的信息。在"可选工具栏项目"它说:

  

您的应用程序可以使用方法setSelectedItemIdentifier:指定当前选定的工具栏项,并传递所需工具栏项的标识符。方法selectedItemIdentifier返回当前选定的工具栏项。如果当前没有选择,则返回nil。

但我还没找到定义setSelectedItemIdentifier:方法的地方,或者它是否能解决我的要求。

我的工具栏项目现在发生的是,点击后,只能通过点击其他可选项目来取消选择它们。单击某个项目后,将始终显示所选项目。

有没有简单的方法来解决这个问题?我错过了文档的重要部分,它解释了如何实现这种效果吗?

非常感谢!

解答: 最后,它就像将selectedItemIdentifier的{​​{1}}设置为NSToolbar一样简单。这会导致取消选择所选元素。

1 个答案:

答案 0 :(得分:3)

要取消选择NSToolbarItem,只需将selectedItemIdentifier对象的NSToolbar设置为nil即可。

我最初对Selectable Toolbar Items部分中的Apple文档感到困惑,因为它声明:

  

[...]方法selectedItemIdentifier返回当前选定的工具栏项。如果当前没有选择,则返回nil。

所以我认为selectedItemIdentifier只是一个返回当前所选工具栏项的方法(没有设置,只是获取)。但我相信这应该是一个错字。 selectedItemIdentifier是get / set属性,实际上,将其设置为nil会取消选择所有项目。