makeKeyAndOrderFront tut nur das letztere
Frage
Ich versuche, ein Fenster von einem anderen mit makeKeyAndOrderFront zu öffnen. Das neue Fenster erscheint, aber nicht den Fokus erhalten.
Der Code für das Hauptfenster ist:
#import "SecondWindowController.h"
@implementation FirstWindowController
-(IBAction)showSecondWindow:(id)sender
{
if (!secondWindowController)
secondWindowController = [[SecondWindowController alloc] init];
[[secondWindowController window] makeKeyAndOrderFront:self];
}
SecondWindowController ist ein NSWindowController, wie folgt:
@implementation SecondWindowController
-(id)init
{
if (![super initWithWindowNibName:@"SecondWindow"])
return nil;
return self;
}
Ich habe auch versucht [secondWindowController showWindow:self]
vor dem makeKeyAndOrderFront
setzen, aber es macht keinen Unterschied machen.
Lösung
Haben Sie sicherstellen, dass das Austrittsfenster für SecondWindowController wird zum Fenster in Ihrem NIB angeschlossen? Das Fenster nur angezeigt werden könnte, indem die NIB geladen, auch wenn der Ausgang nicht nach oben eingehakt.
Andere Tipps
Sind Sie mit einem randlosen Fenster? Wenn ja, brauchen Sie canBecomeKeyWindow außer Kraft zu setzen und zurück YES
Versuchen Sie folgendes:
if (!secondWindowController)
secondWindowController = [[SecondWindowController alloc] init];
NSApplication *thisApp = [NSApplication sharedApplication];
[thisApp activateIgnoringOtherApps:YES];
[[secondWindowController window] makeKeyAndOrderFront:self];