如何在基于视图的NSTableView中获得点击通知

问题描述 投票:0回答:1

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

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

我已经尝试设置表格单元格视图在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中建立连接一样,但它也没有调用适当的方法。

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

macos nstableview
1个回答
1
投票

只需在IBActionNSTableView对象上创建一个target,然后将NSTableViewdoubleAction属性设置为IBAction的选择器,您就可以轻松处理双击事件。

© www.soinside.com 2019 - 2024. All rights reserved.