背景:
我有一个包含名单列表的tableview。单击列表中的名称时,它会在窗口的另一部分中显示其他详细信息。一切都已连接并且工作正常。
...然而
我想在此表中使用Type Select并遇到以下障碍:
当我开始输入名称时(在选择表格时),它正确地突出显示表格中的相应名称但是表格右侧的详细信息不会改变。
我知道原因是更改详细信息的代码是在IBAction方法中,只有当您单击选择列表中的名称并使用[sender clickedRow]调用时才会调用该方法获取所选名称的索引。
我还怀疑我需要使用[tableView selectedRow](因为它被选中,但你没有点击它)但我不太确定在何处或如何执行此检查。
我也在想,既然“类型选择”没有发送动作消息,我将无法使用[sender selectedRow]而是会使用[tableView selectedRow] ......
问题:
如何通过类型选择?
判断tableview中所选行的更改时间谢谢!
答案 0 :(得分:0)
在控制器中实施tableViewSelectionDidChange:
委托方法,并确保您的控制器是NSTableView
的委托。
您可以使用以下内容更新视图:
- (void)tableViewSelectionDidChange:(NSNotification *)aNotification {
[relatedView updateInformationFromRow:[[aNotification object] selectedRow]];
}
来自文档:
tableViewSelectionDidChange:
通知代表该表 视图的选择已经改变。
在此范围内,您将更新相关视图。您可以再次使用aNotification
的对象(NSTableViewSelectionDidChangeNotification
,来自文档:
在NSTableView对象的选择更改后发布。该 notification对象是其选择已更改的表视图。这个 通知不包含userInfo字典。