본문 바로가기

MacOS(Objective C)/개발정보

MacOS 새로운 NSWindowController팝업창에서 메인 스레드 UI접근해서 변경하기

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
반응형