2012-05-22 40 views
1

背景選擇指數:NSTableView的 - 通過鍵入

我有一個名稱列表的實現代碼如下。當您單擊列表中的名稱時,它會在窗口的另一部分中顯示其他詳細信息。一切都已連接並正常工作。

但是......

我想用這種表型選擇並遇到了以下障礙:

當我開始輸入一個名稱(在選擇表)它正確亮點表中適當的名稱BUT表格右側的詳細信息不會更改。

我知道原因是改變詳細信息的代碼是在IBAction爲方法,當你點擊以在列表中選擇一個名字只叫,並使用[發送clickedRow]調用來獲取指數的選定名稱。

我也懷疑我需要使用[tableView selectedRow](因爲它被選中,但你沒有點擊它),但我不太確定在哪裏或如何執行此檢查。

我也在想,因爲「類型中選擇」不發送一個動作消息,我將無法使用[發送selectedRow]而是會使用[的tableView selectedRow] ...

問題:

如何判斷tableview中的選定行何時通過type select進行更改?

謝謝!

回答

0

在您的控制器中實施tableViewSelectionDidChange:委託方法,並確保您的控制器是NSTableView的委託。

- (void)tableViewSelectionDidChange:(NSNotification *)aNotification { 
    [relatedView updateInformationFromRow:[[aNotification object] selectedRow]]; 
} 

從文檔:

你可能喜歡的東西更新您的視圖

tableViewSelectionDidChange:通知該表 視圖的選擇已經改變了委託。

其中,您將更新您的相關視圖。你可以從你的文檔使用aNotification的對象,這將是一個NSTableViewSelectionDidChangeNotification,再次是:

發佈一個NSTableView對象的選擇更改後。 通知對象是其選擇已更改的表視圖。此 通知不包含userInfo字典。