4

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が、違いはありません。

4

3 に答える 3

8

SecondWindowController のウィンドウ アウトレットが NIB のウィンドウに接続されていることを確認しましたか? コンセントが接続されていなくても、NIBをロードするだけでウィンドウが表示される可能性があります。

于 2009-10-27T16:52:10.633 に答える
6

フチなしウィンドウを使用していますか? その場合は、 canBecomeKeyWindow をオーバーライドして YES を返す必要があります

于 2009-10-27T06:11:17.040 に答える
2

これを試して:

if (!secondWindowController)
    secondWindowController = [[SecondWindowController alloc] init];    
NSApplication *thisApp = [NSApplication sharedApplication];
[thisApp activateIgnoringOtherApps:YES];
[[secondWindowController window] makeKeyAndOrderFront:self];
于 2009-10-27T04:34:10.627 に答える