我有一个NSTableView的,我想存在于细胞中的值。 我只有一个列,因此,我只需要行号
我可以用这个[的tableView selectedRow] - 但我在哪里把这个我想把这个在被调用上的任何行的选择方法。
-(void)tableViewSelectionDidChange:(NSNotification *)notification{
NSLog(@"%d",[tableViewController selectedRow]);
}
上述方法也不起作用我收到错误 - [NSScrollView selectedRow]:无法识别的选择发送到实例0x100438ef0]
我想提供类似的方法在iPhone tableview-
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
}
什么是tableViewController
对象? 只有NSTableView
情况下,应对selectedRow
。 你可以得到当前表视图从(发送通知的) notification
的对象属性:
Objective-C的:
-(void)tableViewSelectionDidChange:(NSNotification *)notification{
NSLog(@"%d",[[notification object] selectedRow]);
}
迅速:
func tableViewSelectionDidChange(notification: NSNotification) {
let table = notification.object as! NSTableView
print(table.selectedRow);
}
斯威夫特3(从Eimantas的回答):
func tableViewSelectionDidChange(_ notification: NSNotification) {
let table = notification.object as! NSTableView
print(table.selectedRow);
}
你应该通知的addObserver这样
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(tableViewSelectionDidChangeNotification)
name:NSTableViewSelectionDidChangeNotification object:nil];
它将动作时的tableView选择的行
祝好运
我的2美分Xcode的10 / 4.2的SWIFT
func tableViewSelectionDidChange(_ notification: Notification) {
guard let table = notification.object as? NSTableView else {
return
}
let row = table.selectedRow
print(row)
}
文章来源: which method is called when selecting a cell in the NSTableView in Cocoa OS X?