으로보기 컨트롤러를 사용하는 NSTableView
이 있습니다. 테이블과 데이터의로드가 잘되는 경우도 있지만 빈번한 경우도 있고 데이터 소스 메서드가 호출되지 않는 경우도 있습니다. 왜이 임의의 동작이며, 어떻게이 문제를 해결할 수 있습니까?로드시 NSTableView가 무작위로 비움
-2
A
답변
-2
분명히, 나는 NSTableView
의 문서를 문서에 매우 중요한 단락을 놓친 :
중요
그것은 테이블 뷰를 채우기위한 데이터 소스 방법은 이전에 호출 될 수 있다는 가능성 awakeFromNib은 데이터 소스가 Interface Builder에서 지정되면 호출됩니다. 데이터 소스가 아직 구성되지 않은 경우 데이터 소스의 numberOfRowsInTableView : 메소드가 행 수를 0으로 반환하도록하여이를 막아야합니다. awakeFromNib에서 데이터 소스가 초기화 될 때 항상 테이블 뷰에서 reloadData를 호출해야합니다.
는 지금, 나는 (내가 -viewDidLoad
에서 할) -awakeFromNib
에 초기화하지 않는,하지만 그럼에도 불구하고 당신이 항상 당신의 데이터 소스있어 테이블 뷰에 -reloadData
를 호출 할 필요가 있다고 말한다.
이 오류가 너무 쉽게 발생할 수 있습니다. 종종 테이블보기는 추가 reload
호출이 필요없이 데이터를 자동으로로드합니다. 그러나 드문 경우이지만 이런 일이 일어나지 않을 수도 있습니다.
-viewDidLoad
,
-awakeFromNib
, 또는 다른 적절한 방법에 대한 데이터 소스있어 테이블 뷰에
-reloadData
를 호출합니다.
언제 reloadData를 tableview에서 호출합니까? 어쩌면 일찍 그리고 데이터 소스가 아직 채워지지 않았습니까? – Volker
Woah, woah, downvotes는 무엇입니까? 나는 단지 비슷한 버그를 겪고있는 누군가 (분명히 버그 다. 이렇게 작동해서는 안 됨)가 상대적으로 작은 좌절감으로 앱을 고칠 수 있기를 바라는 내 질문에 대답했다. – ThatsJustCheesy
@Volker : 감사합니다. 이 시점까지는 다른 모든 테이블 뷰가 수동으로 개입하지 않아도 자동으로로드되기 때문에 실제로'-reloadData'를 호출하지 않았습니다. 그러나이 경우는 달랐다. 나는 대답을 업데이트했다. – ThatsJustCheesy