如何在 NSOutlineView 中获取 Control Click 的目标
我有一个由 NSTreeController 控制的 NSOutlineView。 NSOutlineView 连接到 Interface Builder 中的上下文菜单。
按住 Control 单击会调出我的菜单,单击的行将被“选中”,并带有边框的浅色突出显示。
我似乎找不到任何方法来查找“选择”哪一行。 SelectionIndexPath 和 selectedObjects 为零。
I have a NSOutlineView controlled by a NSTreeController.
NSOutlineView is connected to a Contextual Menu in Interface Builder.
Control Click brings up my Menu, and the row clicked on is "selected" with a pale highlight with a border.
I can't seem to find any way to find which row is "selected".
selectionIndexPath and selectedObjects are nil.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您想要使用
clickedRow
。请注意,如果您支持多重选择,这会变得有点复杂,因为如果单击的行位于其中,则快捷菜单将选择作为目标,而如果您单击其他地方,则(单个)单击的行是目标,并且选择是被忽略。这是我为处理此问题而编写的一些代码的示例:
You want to use
clickedRow
. Note that this becomes a bit more complicated if you support multiple selection, because the selection gets targeted by the shortcut menu if the clicked row is within it, whereas if you click elsewhere, the (single) clicked row is the target and the selection is ignored.Here's an example of some code I wrote to handle this: