728x90
반응형
새로운 NSWindowController에서 팝업 창을 열고, 메인 스레드에서 UI를 변경하는 경우, Grand Central Dispatch (GCD)를 사용하여 메인 스레드에서 UI를 업데이트할 수 있다.
기본적으로 UI변경은 메인 스레드에서 이루어지기 때문에 UI 관련된 동작은 메인 스레드에서 해주는 것이 좋다.
새로운 팝업창을 띄우고 그 안에 NSProgressIndicator를 넣었는데 빙글빙글 도는 애니메이션을 추가하려고 하였지만 어떤 짓을 해도 동작하지 않은 이슈가 있었는데 이를 해결한 방법이다.
// 메인 스레드에 접근해서 ProgressIndicator 애니메이션 작동시키기
dispatch_async(dispatch_get_main_queue(), ^{
// UI 업데이트를 메인 스레드에서 수행
[_loadingIndicator startAnimation:nil];
});
dispatch_async(dispatch_get_main_queue(), ^ {
~~~
});
안에 UI 관련 코드를 집어넣어주면 동작이 가능해졌다.
728x90
반응형