NSWindow에 대한 사용자 지정 자동 완성 컨트롤을 만들고 싶습니다. 일종의 Xcode의 멋진 패키지와 비슷하지만, 방법을 알아낼 수 없습니다. 코코아에서 내 자신의 팝업 컨트롤을 구현하는 방법?
는 I 자체 NSWindowController 함께있는 NSPanel을 만들고, 내가 좋아하는 일부 코드를 표시 :_popupController = [[MYPopupWindowController alloc] initWithWindowNibName: @"MYPopupPanel"];
NSPanel *popup = [_popupController window];
[popup setFrameTopLeftPoint: ...]; // location of the cursor
[popup setLevel: NSPopUpMenuWindowLevel];
[_window addChildWindow: popup ordered: NSWindowAbove];
[_popupController showWindow: sender];
있는 NSPanel 자체 -canBecomeKeyWindow
을 (YES를 리턴) 구현의 서브 클래스를 가지고있는 NSTableView는 있도록 팝업은 키 이벤트를 수신 할 수 있습니다.
아주 잘 작동합니다. 내가 가지고있는 유일한 문제는 내 NSPanel이 핵심 창일 때 주 앱 NSWindow가 빨간색/노란색/녹색 창 컨트롤이 어둡게되는 (분명히) 것이 아니라는 것입니다. 분명히 Xcode와 같은 프로그램에서는 메서드 이름을 입력 할 때마다 창 컨트롤이 어둡지 않습니다.
내가 잘못된 나무를 짖고 있습니까? 사용자 지정 팝업 컨트롤을 만드는 NSPanel이 잘못된 방법입니까? 아니면 NSPanel을 부모 창 (또는 다른 창)없이 창 창 컨트롤없이 키 창으로 만들 수있는 방법이 있습니까?
편집 : NSPanel과 같은 Xcode가 실제로 사용하고있는 것을 찾을 수있는 방법이 있습니까?
이것은 (감사합니다!)보기에 유용한 것이지만, 여기에서 문제를 일으킨 것은 아닙니다. 어떤 이유로, NSPanel이'-canBecomeKeyWindow'가 아니더라도 키보드 이벤트를 받아들이며 (물론 부모 창 컨트롤을 엉망으로 만들지는 않습니다). 코코아 리스폰 더 체인을 잘 모르겠지만 지금은 작동합니다. – user241221