2016-06-02 8 views
0

나는 코코아 맥 개발에 처음이다, 지금은 특정 시간 후에 여러 서버 히트를 가지고 맥 애플 리케이션을 개발하고 있습니다. 히트가 원하는 데이터를 얻는다면 상응하는 윈도우를 보여주고 윈도우를 보여줄 필요가 있습니다. [myWindow showWindow : self] 메소드를 사용하고 있습니다. 그것은 원하는 창을 보여 주며 myWindow는 보이는 창에 키 창을 설정합니다.어떻게 코코아에 초점을 맞춘 창을 알게되고 원하는 창으로 설정하는 방법?

지금까지는 모든 것이 잘되었지만 문제는 사용자가 어떤 창에서 작업을 시작하고 여러 다른 하위 창을 열면 불행히도 내 쇼 창이 호출되고 내 작업 창의 포커스가 다른 창으로 이동했다고 가정합니다.

몇 가지 검색을 한 후 [[NSApplication sharedApplication] keyWindow] 위임에 액세스하여 집중 윈도우를 얻을 수 있음을 알았습니다. 여러 조건을 적용했습니다.이 때와이 윈도우가 키 윈도우에있을 때 서버를 누르지 마십시오. .

하지만 문제가 해결되지 않습니다. 이제는 내 현재 작업 창에 keyWindow를 설정하는 것이 가장 좋은 방법이라고 생각합니다.

내가 무엇을 할 수 있는지 그리고 어떻게 강제로 내 키 창으로 창을 설정할 수 있는지 제안하십시오.

도움을 주시면 감사하겠습니다. 미리 감사드립니다.

+0

아래 투표 이유를 알고 있습니다. –

답변

1

질문을 올바르게 이해하면 서버에서 입력을 받았지만 현재 주 또는 키 창 앞에 이동하지 않고 창을 앞으로 가져 오려고합니다.

사용중인 방법이 showWindow:이며 NSWindowController에 속하며 둘 다 창을 표시하고 키를 만듭니다.

살펴볼 내용은 의 창 수준 관리 방법입니다 (orderFront:외)입니다.

특히, orderWindow:relativeTo:을 사용하면 다른 창 앞이나 뒤에 창을 배치 할 수 있습니다. 예를 들어 :

[<window> orderWindow:NSWindowBelow 
      relativeTo:NSApp.keyWindow.windowNumber]; 

즉시 현재 키 창 뒤에, 그리고 키 창 뒤에 다른 창 앞에이 될 수있는 창을 이동합니다.

HTH