2011-04-14 4 views
2

내 응용 프로그램에 잘 작동하는 모달 창을 실행하고 있습니다. 그러나 문제는 창을 닫는 것으로 보인다.NSWindow 모달 문제

창이 닫히는 동안 응용 프로그램을 계속하려면 (시작시 모달 창 표시) 20 초 이상 걸리지 만 도킹 아이콘을 클릭하면 즉시 계속됩니다. 여기

내가 모달 창을 닫습니다 방법은 다음과 같습니다 같은 수동으로 메인 실행 루프로 전환 직접 메인 창으로 말하기, 나는 빨리 계속 응용 프로그램을 얻기 위해 여러 가지를 시도했습니다

[NSApp stopModal]; 
[updaterWindow orderOut:self]; 
[updaterWindow close]; 

을 (그것이 핵심 창문이 될 것을 요구했다). 그것은 모두 작동하지 않았다. 이전과 동일하게 도크 아이콘을 클릭하면 대기 또는 즉시로드됩니다.

어떻게 될까요? 나는 정말로 당황 스럽다.

편집 :

내 모달 창은 실제로 정말 간단한 방법으로 작성됩니다. 내가 모달 나의 창을 실행 창은 사라집니다

[NSApp stopModal]; 
[updaterWindow orderOut:self]; 
[updaterWindow close]; 

, 그러나 아무 곳이나 도크 아이콘에 클릭을 필요로하거나 :

[NSApp runModalForWindow:updaterWindow]; 

나는 것들로 수행하고, 나는 그것을 닫습니다 앱이 계속 화면에 표시됩니다. 나는 순간에 내 응용 프로그램에서 비슷한 일을하고 있어요

+0

인스트루먼트의 시간 프로파일 러는 20 초 동안 수행 한 작업에 대해 어떻게 알려주고 있습니까? – ericg

+0

또한 창에 대한 모달 루프를 시작하는 방법은 무엇입니까? – ericg

+0

'NSApp'의'runModalForWindow :'로 시작하고 있습니다. 1 분 안에 계측기를 점검 할 것입니다. – Pripyat

답변

0

: 나는 모달 창을 호출하는 IBAction를 방법이이 경우

-(IBAction)showMyModalWindow:(id)sender { 
    [theModalWindow makeKeyWindow]; 
    NSInteger retVal = [NSApp runModalForWindow:theModalWindow]; 
    [theModalWindow close]; 
    //continue and do somethin according the value in retVal 
    [[NSApplication sharedApplication] activateIgnoringOtherApps:YES]; 
} 

theModalWindow 그것의 자신의 nib 파일에있는 것은에서 NSObject의있다

-(IBAction)cancelButton:(id)sender 
{ 
    [NSApp stopModalWithCode:errAuthorizationCanceled]; 
} 

showMyModalWindow: 방법의 마지막 라인은 forw 응용 프로그램을 전송하여 내 경우에는 어떻게 필요한 것 같다 : 확인 및 취소 버튼과 거래 예시 적으로 theWindow을 기각 할 것을 여기에 취소 버튼 콜백입니다 ard ... 희망은 그것이 사용 중입니다!

토드.