获取焦点行的NSTableView行索引?

时间:2015-05-29 13:25:24

标签: macos swift cocoa nstableview

如何获取当前正在关注的NSTableView中的行索引?左键单击时,行被选中,但是当右键单击该行时我需要索引,即当用户在其上打开上下文菜单但该行确实获得焦点时,可能不会选择该行。我在文档中找不到有关如何执行此操作的任何详细信息。

1 个答案:

答案 0 :(得分:1)

您可以从tableView.clickedRow获取右键单击的行索引。请注意,如果用户右键单击选定(突出显示的)行,系统将“#34;关注" 所有选定的行(假设有多个选定的行;您可以在Finder中尝试)。所以你可能也想考虑到这一点。

可能的实施:

int clickedRow = tableView.clickedRow;
NSIndexSet *focusedIndexes;
if (clickedRow != -1) {
    if ([tableView isRowSelected:clickedRow]) {
        focusedIndexes = tableView.selectedRowIndexes;
    } else {
        focusedIndexes = [NSIndexSet indexSetWithIndex:clickedRow];
    }
    // do what you desire with focusedIndexes
}