2010-07-29 4 views
1

기본 창과 테이블 뷰가있는 유동 창으로 구성된 애플리케이션이 있습니다. 기본 창에서 부동 창에 대한 입력을 수정하면 (부동 창을 비활성화하거나 키를 만들지 않음) tableview에서 reloadData :를 호출하더라도 새 데이터가 표시되지 않습니다.비활성 NSWindow의 NSTableView 새로 고침

나는 (테이블 뷰가 포함되어 있으므로) 플로팅 윈도우를 새로 고쳐 보았는데 성공하지 못했다. [[window contentview] setNeedsDisplay : YES];

그래서 질문은 기본적으로 맨 앞 윈도우가 아닌 창에서 테이블 뷰를 새로 고치는 방법입니다.

감사합니다.

답변

0

코드 없이는 우리는 추측 할 수 있습니다 ... 내 생각에 메인 윈도우에서 수정중인 데이터는 플로팅 윈도우와 같을 수 없습니다. (예를 들어 사본 일 수도 있습니다.) 그냥 추측하면 ...

+0

코드는 6 개 이상의 파일로 확산되었지만 문제에 대해 자세히 설명하겠습니다. 부동 창에서 tableview의 데이터 소스는 업데이트되지만 창 (및 tableview)은 업데이트되지 않습니다. 따라서 문제는 윈도우가 활성 상태가 아닐 때 (또는 키 윈도우가 아닌 경우) 창을 새로 고침하고 단순히 tableview를 다시로드해도 문제가 해결되지 않는다는 것입니다. –

0

나는 이것이 오래된 질문이라는 것을 알고 있지만, 비슷한 행동을보고 해결책을 찾지 못했습니다. 여기 나를 위해 그것을 해결했습니다 :

메인 스레드의 부동 창에서 테이블 뷰를 업데이트하고 있는지 확인하십시오. 알림에 대한 응답으로 NSOutlineView를 업데이트하면서 알림이 백그라운드 스레드에 게시되었음을 알지 못했습니다. 개요보기는 내가 포함 된 창을 활성화 할 때까지 업데이트되지 않았습니다.

코드를 주 스레드로 옮기면 올바르게 작동하기 시작합니다.

관련 문제