我有一個包含標籤欄設計(即:Tweetbot)的macOS應用程序。有4個選項卡鏈接到4個不同的視圖控制器。初始視圖控制器(視圖1)包含一個NSCollectionView
,它可以水平顯示3個單元格。NSCollectionView細胞訂單更改視圖更改
這一切工作正常,但是當我切換到另一個視圖控制器,然後回到初始視圖控制器時,集合視圖的順序無緣無故改變。我沒有對數據源進行任何更改(這是一個NSMutableArray
),我不添加/刪除任何單元格,也不打電話給reloadData
。我不明白爲什麼集合視圖單元格的順序不斷變化。
我已經做了一些測試,可以確認我的數據源中的數據順序不會改變。因此,對於集合視圖來說,改變單元格的順序是沒有意義的。
我注意到的另一個奇怪的問題是,如果我將收集視圖限制爲2個單元格,則不會發生此問題。這讓我懷疑這個問題是否屬於後臺運行的某種NSCollectionView
緩存方法?也許當收集視圖回收一個單元格時,它使用不正確的數據?
我已經嘗試了很多不同的解決方案,似乎沒有任何工作。有沒有人有任何想法,我可以測試/試用,爲了找出什麼是錯的?
另類想法
我可以使用,而不是NSTableView
,因爲它支持多列(不像UITableView
)。所以我可以製作一個帶3列的NSTableView
。這種方法會不會比NSCollectionView
更糟糕(特別是如果我想添加大量單元?)。
謝謝你的時間,丹。
顯示「itemForRepresentedObjectAt」的代碼 – brianLikeApple