makeKeyAndOrderFront只执行后者

mat*_*wen 4 cocoa nswindow

我正在尝试使用makeKeyAndOrderFront从另一个窗口打开一个窗口.出现新窗口,但没有获得焦点.

主窗口的代码是:

#import "SecondWindowController.h"
@implementation FirstWindowController
-(IBAction)showSecondWindow:(id)sender
{
  if (!secondWindowController)
    secondWindowController = [[SecondWindowController alloc] init];
  [[secondWindowController window] makeKeyAndOrderFront:self];
}
Run Code Online (Sandbox Code Playgroud)

SecondWindowController是一个NSWindowController,如下所示:

@implementation SecondWindowController
-(id)init
{
  if (![super initWithWindowNibName:@"SecondWindow"])
    return nil;
  return self;
}
Run Code Online (Sandbox Code Playgroud)

我也尝试过[secondWindowController showWindow:self]之前,makeKeyAndOrderFront但它并没有什么区别.

Dou*_*son 8

您是否确保SecondWindowController的窗口连接到NIB中的窗口?即使没有连接插座,也可以通过加载NIB来显示窗口.


Lei*_*tzn 6

你在使用无边框窗户吗?如果是这样,你需要覆盖canBecomeKeyWindow并返回YES