我有一個NSTableView
,我想禁用行選擇。NSTableView - 禁用行選擇
表視圖的列綁定到NSArrayController
並且數組的內容確實顯示在表視圖中。
我該如何使用bindings
來做到這一點?
我有一個NSTableView
,我想禁用行選擇。NSTableView - 禁用行選擇
表視圖的列綁定到NSArrayController
並且數組的內容確實顯示在表視圖中。
我該如何使用bindings
來做到這一點?
我認爲你需要使用TableViewDelegate和實施
- (NSIndexSet *)tableView:(NSTableView *)tableView
selectionIndexesForProposedSelection:(NSIndexSet *)proposedSelectionIndexes
我覺得
- (BOOL)selectionShouldChangeInTableView:(NSTableView *)aTableView
{
return NO;
}
優於
- (NSIndexSet *)tableView:(NSTableView *)tableView selectionIndexesForProposedSelection:(NSIndexSet *)proposedSelectionIndexes
您可以在頭文件中閱讀:「爲了獲得更好的性能並更好地控制選擇,應該使用tableView:selectionIndexesForProposedSelection :.」 – Stephan
雖然以前的答案工作,這是另一個我更喜歡使用的選項:
- (BOOL)tableView:(NSTableView *)aTableView shouldSelectRow:(NSInteger)rowIndex
{
return NO;
}
這實際上是您想要的方法,如果您想禁用某些行而不選擇其他 –
作爲一個紙條給後人......
如果聲明selectionIndexesForProposedSelection,然後shouldSelectRow功能將被忽略。萬一你想知道像我一樣,爲什麼我的編輯shouldSelectRow沒有效果...
也許,但我希望這不會是這樣...... – ericg
{返回0 ; } 我相信?似乎工作。 –