我有一個單欄NSTableView,填充NSTableViewDataSource方法(不涉及任何綁定)。NSTableView是在NSScrollView內,當您從Interface Builder中的庫中拖入一個NSTableView時,NSTableView是默認行爲。 tableview的內容基於用戶鍵入的搜索字符串填充,並且在該點之後不會更改。NSTableView跳轉選擇...爲什麼?
我只實現數據源協議的這兩種方法:
- (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView;
- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row;
輸入我的搜索字符串後,焦點仍然是在的NSTextField,但我可以自然地滾動tableview中與我的鼠標滾輪或用滾動條上的箭頭。都不會導致tableview接收對焦環。但是,如果向下滾動以使我不在tableview的頂部,然後單擊以突出顯示tableview中的單個行,則tableview會跳回到頂部,然後選擇該位置的鼠標下面的任何行。如果在點之後點擊行,它將按預期工作。
換句話說,如果NSTableView有圍繞它的聚焦環,點擊一行就會突出顯示預期的行。如果它沒有圍繞它的聚焦環,點擊一行可以在滾動到頂部之後選擇該位置的任何行。
任何見解?我運行的是雪豹,但我相信這也發生在我運行豹時。
哦......你說的沒錯!我將文本字段設置爲「發送結束編輯」而不是「僅限發送」。因此,當我點擊tableview時,它再次運行搜索。如果我在點擊tableview之前選中「搜索」按鈕,它按預期工作。 謝謝! – 2010-08-18 13:54:18