如何检测NSTableView行已被选中?

时间:2014-03-25 20:29:44

标签: objective-c cocoa nstableview

我有一个NSTableView,其中有许多行供用户选择。当用户选择一行时,我会得到

- (BOOL)tableView:(NSTableView *)tableView shouldSelectRow:(NSInteger)row

NSTableViewDelegate方法调用,非常棒。当用户点击该行时,我会突出显示它。

然而,问题是,当用户再次“选择”该行时,我没有再次获得委托调用(不取消选择行或选择另一行)。

例如,用户单击某一行并加载某些文件。如果用户要再次选择该行,我想刷新加载的文件。但是,我没有第二次用户点击该行。

一个选项是取消选择该行,但我需要保持选中状态,以便用户知道他们选择了哪个选项。

是否有一个我错过的委托方法告诉我何时选择了一行(或点击了它)?

提前致谢!

1 个答案:

答案 0 :(得分:5)

在写这个问题时,我在建议的类似问题下找到答案,所以我会写下我发现的内容:

On this question建议您使用IBAction点击NSTableView。这很有效,因为即使选择了行,我总是会收到IBAction电话。然后,我能够摆脱- (BOOL)tableView:(NSTableView *)tableView shouldSelectRow:(NSInteger)row方法的实现!

希望这有助于其他人!