2015-05-29 81 views
1

如何獲得當前正在聚焦的NSTableView中的行索引?當左鍵單擊時,該行被選中,但當右鍵單擊該行時,我需要該索引,即當用戶打開上下文菜單但該行確實獲得焦點時,該行可能未被選中。我無法在文檔中找到有關如何執行此操作的任何詳細信息。獲取焦點行的NSTableView行索引?

回答

1

您可以從tableView.clickedRow獲取右鍵單擊的行索引。請注意,如果用戶在所選行(高亮顯示)上單擊鼠標右鍵,系統將「聚焦」全部選定的行(假設有多個選定行;您可以在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 
} 
+0

非常感謝!這是訣竅! – BadmintonCat