如何在基于视图的NSTableView

时间:2018-01-02 22:30:22

标签: macos nstableview

我有一个包含单词列表的基于视图的NSTableView。当用户双击某个单词时,我想采取行动。单词不可编辑或可选择。我该怎么做?

我已尝试在IB中设置表格视图的目标和操作,但它只在用户点击表格标题时调用操作方法,而不是在其中一个单词中。

我已尝试设置表格单元格视图在IB中保留的NSTextField的目标和操作。这会导致在控制台中重复此错误消息:

  

2018-01-02 14:14:32.080347-0800 WordExplorer [7089:21457459]无法连接动作,目标类NSObject不响应-relatedWordClick:

然而,目标类 会响应选择器。 (我直接在IB中连接它,很清楚,它确实连接!)它也不是一个简单的NSObject,所以我猜测其他地方出了问题。

我尝试在我的委托-setTarget:方法中的表格单元格视图中的-setAction:上手动调用NSTextField-tableView:viewForTableColumn:row:。这没有任何效果,调试器显示尽管调用了这些方法,但它们并未设置文本字段的操作或目标方法。 (虽然,鉴于这是我们正在谈论的Xcode,它可能只是一个调试器显示问题。)我在控制台中没有像我在IB中建立连接那样出错,但是它也没有调用适当的方法。

我是否需要制作自定义视图类并将其用于表格单元格视图?或者是否有更简单的方法来获取列表中的单词(最好是双击)?

1 个答案:

答案 0 :(得分:1)

只需在您拥有IBAction NSTableView的对象上创建target,然后设置NSTableView' s {{ 1}}属性到doubleAction的选择器,您可以轻松处理双击事件。