我想選擇和編輯新添加的對象的名稱屬性。在NSTableView中選擇和編輯新對象
在OSX上,我有一個數組控制器,它在表格視圖中顯示其內容。我通過AC的屬性連接了表列的值(使用綁定)。另外,我將表視圖的內容和selectionIndexes綁定設置爲指向AC。
我的子類AC在表視圖中有一個IBOutlet(稱爲tableView),幷包含來自數據模型的託管對象。
在我的AC中,我重寫了add:方法。
- (void)add:(id)sender {
[super add:sender];
[[self managedObjectContext] processPendingChanges]; // no effect
[tableView reloadData]; // no effect
[tableView scrollRowToVisible:[[self arrangedObjects] count]-1];
}
新添加的對象出現在選定狀態的表格視圖中(我在IB中設置了AC來選擇新插入的對象)。但是表格視圖向下滾動到最後一行,將新行放在可見視圖之外。
當我嘗試這一點,
[tableView scrollRowToVisible:[tableView selectedRow]];
或此,
[tableView scrollRowToVisible:[self selectionIndex]];
它會變得更糟糕:selectionIndex似乎並沒有被正確地更新。
- (void)add:(id)sender {
[super add:sender];
NSLog(@"selectionIndex = %lu", [self selectionIndex]);
NSLog(@"number of objects in AC = %lu", [[self arrangedObjects] count]);
}
記錄selectionIndex顯示它始終顯示以前的選擇索引。 記錄AC中的對象數量總是太少。
我是否試圖操縱表視圖太早?任何想法哪種方法更適合重寫?
關於編輯部分..
下面的語句干擾了上述scrollRowToVisible:方法,作爲最後一個參數似乎選擇行也是如此。
[tableView editColumn:0 row:0 withEvent:nil select:YES];
不管怎麼說,指定的字段(用於測試表的第一行)似乎進入編輯模式只是一個瞬間的閃爍,但隨後立即完編輯。
任何幫助將不勝感激。
有沒有辦法解決這個綁定?一個NSArrayController有一個綁定來自動選擇新的插入。 NSTableView無法綁定,自動開始編輯單元格? – Fnord23 2012-03-12 13:44:52