2011-02-01 7 views
0

내 프로그램에서 사용자에게 웹보기를 포함하는 NSPanel이 웹 페이지에서 인증되도록 나타납니다. 인증이 완료되기 전에 사용자가 WebView를 닫고 있는지 모니터링하고 싶습니다.WebView의 창이 닫힐 때의 메시지?

WebFrameLoadDelegate 프로토콜에서 메시지를 찾았지만 사용자가 NSPanel의 닫기 단추를 클릭 할 때 및 사용자가 닫기 단추를 클릭 할 때만 발생하는 메시지를 찾을 수없는 것 같습니다.

NSWindowController를 서브 클래 싱하고 close 메소드를 오버라이드하는 방법을 살펴 보았습니다. 아마 내가 잘못 했어요. 비록 내가 [super close] 콜을 제거했을지라도, 패널은 여전히 ​​닫혀 있기 때문입니다.

그래서 WebView가 포함 된 NSPanel이 닫힐 때 추가 코드를 실행하는 올바른 절차는 무엇입니까?

답변

0

사용자가 창을 닫지 못하도록하려면 을 포함하지 않는 사람에게 set the window's style mask이 필요합니다. 이렇게하면 윈도우의 닫기 버튼이 비활성화되므로 프로그래밍 방식으로 만 닫을 수 있습니다. 가장 단순한 경우 [panel setStyleMask:[panel styleMask]^NSCloseableWindowMask]을 사용할 수 있습니다.

또한 윈도우 닫는 동작을 재정의하려면 NSWindow (NSWindowController가 아닌) close 메서드를 재정의하거나 windowShouldClose:을 창 대리자에 구현해야합니다. 두 번째 방법이 더 좋습니다. 여하튼, -[NSWindowController close]은 창을 닫는 편리한 방법 일뿐입니다. 창을 닫을 때 정상적으로 호출되는 것은 아닙니다.

+0

Perfect. 감사! – Aaron

관련 문제