makeKeyAndOrderFront يفعل سوى الأخير
سؤال
واني اسعى الى فتح نافذة واحدة من آخر باستخدام 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];
لا تنتمي إلى StackOverflow