我有一个允许多项选择的NSTableView。现在,当用户选择多行并单击Button时,我需要获取所有选定的行值。请帮忙!
对于获取单行数据,我使用的代码如下
var row = tableViewOutlet.selectedRow
var column = tableViewOutlet.tableColumnWithIdentifier("EmpName")
var cell: AnyObject? = column?.dataCellForRow(row)
println("Cell Value - \(cell!.stringValue)")
但是我想要它在循环中的多行
我编写了如下代码
for (var i = 0; i < tableViewOutlet.numberOfSelectedRows; ++i) {
if(tableViewOutlet.isRowSelected(i))
{
var row = tableViewOutlet.selectedRow
var column = tableViewOutlet.tableColumnWithIdentifier("EmpName")
var cell: AnyObject? = column?.dataCellForRow(row)
println("Selected Emp Name - \(cell!.stringValue)")
}
}
但它只给了我最后选择的行值。告诉我我哪里出错了。
答案 0 :(得分:4)
存在API误解:
numberOfSelectedRows
返回选择的行数。
使用selectedRowIndexes
返回包含所选行索引的NSIndexSet
实例
您可以使用
枚举索引集Swift 1.2
for (_, index) in enumerate(tableViewOutlet.selectedRowIndexes)
{
}
Swift 2
for (_, index) in tableViewOutlet.selectedRowIndexes.enumerate() {}
Swift 3
for (_, index) in tableViewOutlet.selectedRowIndexes.enumerated() {}
但我会从表格视图数据源而不是从表格单元格
中检索数据