2

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

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

所选工具截图

在上图中,您可以看到选择了“编辑”工具。如果再次单击该项目,它将被取消选择:

未选择的工具截图

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

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

但我还没有找到该setSelectedItemIdentifier:方法的定义位置,或者它是否可以解决我的要求。

我的工具栏项目现在发生的情况是,一旦单击,它们只能通过单击另一个可选项目来取消选择。单击一个项目后,将始终有一个选定的项目。

有什么简单的方法可以解决这个问题吗?我是否遗漏了文档的重要部分,它解释了如何实现这种效果?

非常感谢!

回答: 所以最后它就像将 的 设置为selectedItemIdentifier一样NSToolbar简单nil。这会导致所选元素被取消选择。

4

1 回答 1

3

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

我最初对 Apple 文档感到困惑,在Selectable Toolbar Items部分,因为它指出:

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

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

于 2016-05-17T18:25:28.060 回答