1

背景:

我有一个包含名称列表的表格视图。当您单击列表中的名称时,它会在窗口的另一部分显示其他详细信息。一切都已连接并且工作正常。

然而...

我想在此表中使用 Type Select 并遇到以下问题:

当我开始输入名称(选择表格时)时,它会正确突出显示表格中的适当名称,但表格右侧的详细信息不会改变。

我知道原因是更改详细信息的代码位于 IBAction 方法中,该方法仅在您单击以选择列表中的名称时调用,并使用 [sender clickedRow] 调用来获取所选名称的索引。

我还怀疑我需要使用 [tableView selectedRow] (因为它被选中,但你没有点击它)但我不太确定在哪里或如何执行此检查。

我还在想,由于“类型选择”没有发送操作消息,我将无法使用 [sender selectedRow] 而是会使用 [tableView selectedRow] ...

问题:

如何通过类型选择判断表格视图中的选定行何时更改?

谢谢!

4

1 回答 1

0

在您的控制器中实现tableViewSelectionDidChange:委托方法,并确保您的控制器是NSTableView的委托。

您可以使用以下内容更新您的视图:

- (void)tableViewSelectionDidChange:(NSNotification *)aNotification {
    [relatedView updateInformationFromRow:[[aNotification object] selectedRow]];
}

从文档中:

tableViewSelectionDidChange:通知代理表视图的选择已更改。

在其中,您将更新您的相关视图。您可以使用aNotification' 对象,这将是一个NSTableViewSelectionDidChangeNotification,再次从文档中,是:

在 NSTableView 对象的选择更改后发布。通知对象是其选择发生变化的表视图。此通知不包含 userInfo 字典。

于 2012-05-22T20:00:03.307 回答