获取所选行NSTableView的值

时间:2010-02-19 19:38:04

标签: objective-c cocoa

如何在NSTableView中获取所选行的值?

6 个答案:

答案 0 :(得分:17)

使用selectedRowsee here

@property(readonly) NSInteger selectedRow;
  

最后一个选定行的索引(或添加到的最后一行)   选择)。

您可能也有兴趣:

  

-selectedRowEnumerator(不建议使用)

     

-numberOfSelectedRows

     

-selectedRowIndexes“返回包含所选行的索引的索引集”

答案 1 :(得分:15)

Cocoa遵循模型 - 视图 - 控制器设计模式,因此您的推理以及您自己的设计也应如此。

您没有从表中获取任何值,因为您已在模型中拥有它们。您的控制器(通常是数据源)向表中询问其选定的行索引,然后向您的模型询问与这些索引匹配的对象,然后执行它需要做的任何事情。

答案 2 :(得分:10)

假设您已经拥有名为 tableView 的属性,并且在xib中使用行 cellName

定义了tableView
NSInteger 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)
  }