NSTableView - 通过键入选择索引

时间:2012-05-22 19:50:11

标签: xcode cocoa tableview

背景:

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

...然而

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

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

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

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

我也在想,既然“类型选择”没有发送动作消息,我将无法使用[sender selectedRow]而是会使用[tableView selectedRow] ......

问题:

如何通过类型选择?

判断tableview中所选行的更改时间

谢谢!

1 个答案:

答案 0 :(得分:0)

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

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

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

来自文档:

  

tableViewSelectionDidChange:通知代表该表   视图的选择已经改变。

在此范围内,您将更新相关视图。您可以再次使用aNotification的对象(NSTableViewSelectionDidChangeNotification,来自文档:

  

在NSTableView对象的选择更改后发布。该   notification对象是其选择已更改的表视图。这个   通知不包含userInfo字典。