当"标题栏"设置为不显示时,为什么我无法在NSPanel中获得焦点?

Jer*_*ith 6 cocoa objective-c

如果我在Xcode 4.1中创建项目,并将MainMenu.xib设置为具有两个NSPanel,并在两个面板中放置NSTextField,如果我将其中一个NSPanel设置为不显示"标题栏",则该面板中的文本字段不能点击或给予焦点.

为什么??

Nic*_*kkk 9

没有标题栏的窗口(或面板)不能成为键,因此无法获得焦点.你必须将它子类化并覆盖它的- (BOOL)canBecomeKey方法,如下所示:

@interface MyPanel : NSPanel
@end

@implementation MyPanel

- (BOOL)canBecomeKeyWindow {
    return YES;
}

@end
Run Code Online (Sandbox Code Playgroud)