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.

War es hilfreich?

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];
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top