سؤال

واني اسعى الى فتح نافذة واحدة من آخر باستخدام 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 ولكن لا تحدث فرقا.

هل كانت مفيدة؟

المحلول

هل تأكد من يتم توصيل منفذ نافذة للSecondWindowController تصل إلى النافذة في بنك الاستثمار القومي الخاص بك؟ يمكن أن يتم عرض نافذة فقط عن طريق تحميل طرف مستدق، حتى لو لم يتم توصيل منفذ يصل.

نصائح أخرى

هل تستخدم نافذة بلا حدود؟ إذا كان الأمر كذلك تحتاج إلى تجاوز canBecomeKeyWindow والعودة YES

وجرب هذا:

if (!secondWindowController)
    secondWindowController = [[SecondWindowController alloc] init];    
NSApplication *thisApp = [NSApplication sharedApplication];
[thisApp activateIgnoringOtherApps:YES];
[[secondWindowController window] makeKeyAndOrderFront:self];
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top