我正在尝试使用makeKeyAndOrderFront从另一个窗口打开一个窗口。出现新窗口,但没有获得焦点。
主窗口的代码是:
#import "SecondWindowController.h"
@implementation FirstWindowController
-(IBAction)showSecondWindow:(id)sender
{
if (!secondWindowController)
secondWindowController = [[SecondWindowController alloc] init];
[[secondWindowController window] makeKeyAndOrderFront:self];
}
SecondWindowController是NSWindowController,如下所示:
@implementation SecondWindowController
-(id)init
{
if (![super initWithWindowNibName:@"SecondWindow"])
return nil;
return self;
}
我也尝试将[secondWindowController showWindow:self]
放在makeKeyAndOrderFront
之前,但它没有任何区别。
答案 0 :(得分:8)
您确定SecondWindowController的窗口是否已连接到NIB中的窗口?只需加载NIB即可显示窗口,即使插座未连接也是如此。
答案 1 :(得分:6)
您使用的是无边框窗口吗?如果是这样,你需要覆盖canBecomeKeyWindow并返回YES
答案 2 :(得分:2)
试试这个:
if (!secondWindowController)
secondWindowController = [[SecondWindowController alloc] init];
NSApplication *thisApp = [NSApplication sharedApplication];
[thisApp activateIgnoringOtherApps:YES];
[[secondWindowController window] makeKeyAndOrderFront:self];