2014-03-06 80 views
0

我有一個奇怪的問題,NSTableView,因爲當我將項目從xCode3升級到xCode5升級項目後:NSTableVIew在刪除現有的行後沒有正確更新

如果我添加一個新行,視圖會正確更新並顯示新行。但是,如果我刪除一個現有的行,tableview不會更新,我需要關閉並重新打開窗口才能看到更新的項目列表。

用作數據源的NSTableViewNSArrayController都包含在xib文件中。要添加和刪除行,我通過添加和刪除對象來操作數組控制器。這是刪除項目的代碼:

[[[self creatorsArrayController] selectedObjects] makeObjectsPerformSelector:@selector(remove)]; 
[[self creatorsArrayController] remove:sender]; 

顯然,舊的程序員出於某種原因正在使用這兩種方法。我也嘗試刪除兩行中的一行,但沒有任何更改。

代碼在以前版本的xCode中完美工作,我懷疑在xib文件中升級之後可能會更改某些內容,但我不知道它是什麼。

感謝

回答

0

要更新的tableView,使用

[yourTableViewOutletName reloadData];

刪除行後。

+0

是啊,我已經試過了,但它不工作。對我而言,奇怪的是,對於任何其他操作,該表已正確更新,但不是用於刪除行。 – aneuryzm

0

您使用的兩條線中的第一條對我來說沒有多大意義(但我無法真正瞭解,因爲在該行中,remove消息正在發送到要刪除的對象,可能這很重要在你的應用程序中),無論如何,它似乎沒有涉及從陣列中刪除對象。

你給的資料很少,所以很難說肯定的,但這裏有一對夫婦認爲檢查:

  1. 第二行只應與選定的對象。如果要以編程方式刪除未選擇的對象,則此方法不起作用(例如,應使用removeObjectremoveObjectAtArrangedObjectIndex:)。
  2. 如果您使用的是核心數據,則可以考慮查看documentation以瞭解可能相關的一些註釋。
  3. 檢查你的「刪除」按鈕被綁定到NSArrayController的正確的(除非你手動刪除)
+0

是的,我選擇之前的項目將其刪除,我正在手動刪除(從上面的代碼中可以看到)。我想強調升級到xCode5之前一切正常,並且問題在於刷新表(該對象從arrayController正確刪除)。 – aneuryzm

相關問題