탭바 디자인이 포함 된 macOS 응용 프로그램이 있습니다 (예 : Tweetbot). 4 개의보기 컨트롤러에 연결된 4 개의 탭이 있습니다. 초기보기 컨트롤러 (하나보기)에는 가로 방향으로 3 개의 셀을 표시하는 NSCollectionView
이 포함되어 있습니다.보기 변경시 NSCollectionView 셀 순서 변경
다른보기 컨트롤러로 전환 한 다음 초기보기 컨트롤러로 돌아 오면 아무 이유없이 컬렉션보기의 순서가 변경됩니다. 데이터 소스 (어떤 NSMutableArray
)에 대한 변경 작업을 수행하지 않고 어떤 셀도 추가/삭제하지 않으며 reloadData
을 호출하지도 않습니다. 콜렉션 뷰 셀의 순서가 계속 변경되는 이유를 이해할 수 없습니다.
일부 테스트를 수행했으며 데이터 원본의 데이터 순서가 전혀 변경되지 않았 음을 확인할 수 있습니다. 따라서 콜렉션 뷰에는 셀의 순서를 변경하는 것이 중요하지 않습니다.
또 다른 이상한 문제는 컬렉션보기를 2 셀로 제한하면이 문제가 발생하지 않는다는 것입니다. 이 문제는 백그라운드에서 실행되는 NSCollectionView
캐싱 방법과 관련이 있는지 궁금하게 생각합니까? 아마도 콜렉션 뷰가 셀을 재활용 할 때 잘못된 데이터를 사용합니까 ??
많은 솔루션을 시도했지만 아무 것도 작동하지 않습니다. 아무도 내가 무엇을 테스트/시도 할 수 있는지에 대한 아이디어가 있습니까? 이 (UITableView
달리) 여러 열을 지원하기 때문에
대체 생각
내가 대신 NSTableView
을 사용할 수 있습니다. 그래서 나는 3 열로 NSTableView
을 만들 수 있습니다. 이 접근 방식이 더 좋은 성능을 발휘할 수 있습니까? NSCollectionView
(특히 많은 셀을 추가하고 싶다면?)보다.
시간 내 주셔서 감사합니다.
"itemForRepresentedObjectAt"에 대한 코드를 표시 – brianLikeApple