如何在 view-based NSTableView 中获得点击通知
How to get notified of clicks in a view-based NSTableView
我有一个 view-based 包含单词列表的 NSTableView。当用户 double-clicks 上一个词时,我想采取一个动作。这些词不是 editable 或 selectable。我该怎么做?
我尝试在 IB 中设置 table 视图的目标和操作,但它仅在用户单击 table 的 header 时调用操作方法,不在其中一个词中。
我尝试设置 table 单元格视图保存在 IB 中的 NSTextField 的目标和操作。这导致在控制台中重复此错误消息:
2018-01-02 14:14:32.080347-0800 WordExplorer[7089:21457459] Could not connect action, target class NSObject does not respond to -relatedWordClick:
但是目标 class 确实 响应选择器。 (我是直接在IB里连接的,很明显,确实如此!)也不是简单的NSObject
,估计是哪里出了问题
我已经尝试在我的代表的 -tableView:viewForTableColumn:row:
方法中的 table 单元格视图中包含的 NSTextField
上手动调用 -setTarget:
和 -setAction:
。这没有任何效果,并且调试器显示尽管调用了这些方法,但它们没有设置文本字段的操作或目标方法。 (不过,考虑到我们正在谈论的是 Xcode,这很可能只是调试器显示问题。)我在控制台中没有收到任何错误,就像我在 IB 中建立连接时一样,但它也不会调用适当的方法。
我是否需要制作自定义视图 class 并将其用于 table 单元格视图?或者有没有更简单的方法来获得我列表中单词的点击次数(最好是 double-clicks)?
只需在您拥有的对象上创建一个 IBAction
作为 NSTableView
的 target
,然后设置 NSTableView
的 doubleAction
属性 到 IBAction
的选择器,您可以轻松处理双击事件。
我有一个 view-based 包含单词列表的 NSTableView。当用户 double-clicks 上一个词时,我想采取一个动作。这些词不是 editable 或 selectable。我该怎么做?
我尝试在 IB 中设置 table 视图的目标和操作,但它仅在用户单击 table 的 header 时调用操作方法,不在其中一个词中。
我尝试设置 table 单元格视图保存在 IB 中的 NSTextField 的目标和操作。这导致在控制台中重复此错误消息:
2018-01-02 14:14:32.080347-0800 WordExplorer[7089:21457459] Could not connect action, target class NSObject does not respond to -relatedWordClick:
但是目标 class 确实 响应选择器。 (我是直接在IB里连接的,很明显,确实如此!)也不是简单的NSObject
,估计是哪里出了问题
我已经尝试在我的代表的 -tableView:viewForTableColumn:row:
方法中的 table 单元格视图中包含的 NSTextField
上手动调用 -setTarget:
和 -setAction:
。这没有任何效果,并且调试器显示尽管调用了这些方法,但它们没有设置文本字段的操作或目标方法。 (不过,考虑到我们正在谈论的是 Xcode,这很可能只是调试器显示问题。)我在控制台中没有收到任何错误,就像我在 IB 中建立连接时一样,但它也不会调用适当的方法。
我是否需要制作自定义视图 class 并将其用于 table 单元格视图?或者有没有更简单的方法来获得我列表中单词的点击次数(最好是 double-clicks)?
只需在您拥有的对象上创建一个 IBAction
作为 NSTableView
的 target
,然后设置 NSTableView
的 doubleAction
属性 到 IBAction
的选择器,您可以轻松处理双击事件。