2014-03-04 2 views
0

라디오 프레임과 버튼이있는 창을 여는 프레임 워크에 함수를 만들어야합니다. 버튼을 클릭하면 선택한 라디오가 출력됩니다. Form을 표시하기 위해 NSWindowController를 xib 파일과 함께 사용하고 있습니다.프레임 워크 내에서 창 닫기를 기다리는 방법?

문제는 코드가 창을 표시 한 후에도 계속 실행된다는 점입니다. 그래서 버튼을 클릭하면 설정되어있는 내 윈도우의 속성으로 while 루프를 시도했습니다. 하지만 윈도우가 같은 스레드에서 실행되고 있기 때문에 작동하지 않습니다.

MyWindowController windowController = [[MyWindowController alloc initWithWindowNibName:@"MyWindow"]; 
    [windowController showWindow:self]; 
    while([windowController buttonClicked] == 0); 
    NSLog("Radio %@ is selected!", [windowController selectedRadio]); 

창을 닫고 데이터를 읽는 것을 기다리는 방법을 알고 있습니까? 도와 주시면 감사하겠습니다.

답변

0

위임자로 자신을 추가하고 windowWillClose 알림을 수신 할 수 있습니다. 그렇게하면 창문이 닫힐 때 통보 받게됩니다.

창이 닫히지 않아도 대기 중이므로 runloop을 차단하지 않으면 작동하지 않지만 위임 메서드가 호출 될 때까지 대기 상태가됩니다. 또한 창 컨트롤러는 자동으로 창에 대한 위임자 여야하므로이 용도로 사용할 수도 있습니다.