我目前正在尝试使用可选 NSToolbar
定义NSToolbarItems
,它代表绘图OSX应用程序中的工具。我希望用户能够选择并取消选择要通过单击使用的工具(NSToolbarItems)。
如果你碰巧知道Sketch,那就是我正在寻找的工具栏行为:
在上图中,您可以看到"编辑"选择的工具。如果再次单击该项,则会取消选择该项:
我一直在阅读工具栏的Apple文档,并且找不到有关如何实现这种能够选择/取消选择工具栏项的效果的信息。在"可选工具栏项目"它说:
您的应用程序可以使用方法
setSelectedItemIdentifier:
指定当前选定的工具栏项,并传递所需工具栏项的标识符。方法selectedItemIdentifier
返回当前选定的工具栏项。如果当前没有选择,则返回nil。
但我还没找到定义setSelectedItemIdentifier:
方法的地方,或者它是否能解决我的要求。
我的工具栏项目现在发生的是,点击后,只能通过点击其他可选项目来取消选择它们。单击某个项目后,将始终显示所选项目。
有没有简单的方法来解决这个问题?我错过了文档的重要部分,它解释了如何实现这种效果吗?
非常感谢!
解答:
最后,它就像将selectedItemIdentifier
的{{1}}设置为NSToolbar
一样简单。这会导致取消选择所选元素。
答案 0 :(得分:3)
要取消选择NSToolbarItem
,只需将selectedItemIdentifier
对象的NSToolbar
设置为nil
即可。
我最初对Selectable Toolbar Items部分中的Apple文档感到困惑,因为它声明:
[...]方法
selectedItemIdentifier
返回当前选定的工具栏项。如果当前没有选择,则返回nil。
所以我认为selectedItemIdentifier
只是一个返回当前所选工具栏项的方法(没有设置,只是获取)。但我相信这应该是一个错字。 selectedItemIdentifier
是get / set属性,实际上,将其设置为nil会取消选择所有项目。