2009-11-17 3 views
0

내가 가진 NSAlert 시트를 호출하는 OS X의 prefpane 있습니다호출 창에 포커스를 되돌리려면 NSAlert 시트를 얻으려면 어떻게해야합니까?

시스템 환경 설정 응용 프로그램 벌금에 부착 된 경고 시트를 보여줍니다,하지만 난 시트의 확인 버튼을 클릭하면, 그것은 닫고하지 않는
[alert beginSheetModalForWindow:[[self mainView] window] modalDelegate:self didEndSelector:@selector(unsavedChangesAlertDidEnd:returnCode:contextInfo:) contextInfo:nil]; 

포커스를 시스템 환경 설정으로 되돌립니다. 어떤 아이디어?

답변

0

-unsavedChangesAlertDidEnd:returnCode:contextInfo: 메서드가 끝날 때 해당 창에 -makeKeyAndOrderFront: 메시지를 보내보십시오.

+0

내 창에는 그 선택자가 없습니다. 내 prefpane의 창을 다음과 같이 호출합니다. [self mainView] window –

+0

timmerk : 모든 창 (즉, NSWindow 또는 그 하위 클래스의 모든 인스턴스)이 해당 선택자에 응답합니다. 실제 예외 메시지를 게시하면 도움이됩니다. –

+0

피터 : 그건 내가 생각한 것이지만 Xcode는 윈도우가 응답하지 않을 것이라고 계속 말합니다. 예외는 없었지만 문제는 알았습니다. 내 unsavedChangesAlertDidEnd 메서드 내에서 포커스를 잃어버린 NSWorkspace를 사용하여 백그라운드 앱을 실행합니다. 모두에게 감사드립니다! –

관련 문제