如何在NSTableView中获取所选行的值?
答案 0 :(得分:17)
使用selectedRow
,see here:
@property(readonly) NSInteger selectedRow;
最后一个选定行的索引(或添加到的最后一行) 选择)。
您可能也有兴趣:
-selectedRowEnumerator(不建议使用)
-numberOfSelectedRows
-selectedRowIndexes“返回包含所选行的索引的索引集”
答案 1 :(得分:15)
Cocoa遵循模型 - 视图 - 控制器设计模式,因此您的推理以及您自己的设计也应如此。
您没有从表中获取任何值,因为您已在模型中拥有它们。您的控制器(通常是数据源)向表中询问其选定的行索引,然后向您的模型询问与这些索引匹配的对象,然后执行它需要做的任何事情。
答案 2 :(得分:10)
假设您已经拥有名为 tableView 的属性,并且在xib中使用行 cellName
定义了tableViewNSInteger row = [tableView selectedRow];
NSTableColumn *column = [tableView tableColumnWithIdentifier:@"cellName"];
NSCell *cell = [column dataCellForRow:row];
NSLog(@"cell value:%@", [cell stringValue]);
答案 3 :(得分:3)
要从表中获取所选行,请尝试此..
[tableView selectedRow];
访问tableView值
[array objectAtIndex:[tableView selectedRow]];
答案 4 :(得分:-1)
由于我们在模型中拥有所有值,因此我们只能获取行的索引并使用索引获取值。例如:
NSInteger row = [self.nsTableView selectedRow]; //here @property (weak) IBOutlet NSTableView *nsTableView;
NSString *cellValue = ObjectValue[row];// NSMutableArray *ObjectValue;
NSLog(@"%@", cellValue);
答案 5 :(得分:-1)
在Swift2.0中,这可以帮到你:
func tableViewSelectionDidChange(notification: NSNotification) {
let selectedTableView = notification.object as! NSTableView
print(selectedTableView.selectedRow)
}