Какао - соединение IBOutlet с отдельным пером - PullRequest
3 голосов
/ 17 февраля 2011

У меня есть nib-файл, в который я загружаю приложение в определенный момент. Было бы законно для меня связать NSWindow IBOutlet из моего AppDelegate с окном файла 2-го пера? Другими словами, мой IBOutlet не подключен к xib-файлу MainMenu, который Xcode создает по умолчанию. Если это было законно, могу ли я получить доступ к фрейму NSWindow и другим функциям?

Ответы [ 3 ]

6 голосов
/ 20 февраля 2011

Да, вы можете сделать это. Во втором файле пера я бы использовал NSWindowController в качестве владельца файла для пера. Затем в вашем AppDelegate создайте экземпляр NSWindowController и затем загрузите перо. Оттуда вы можете просматривать свойства окна, принадлежащего NSWindowController, или делать с окном все, что хотите.

Вот пример

@interface MyAppDelegate : NSObject 
{
    NSWindowController *myWindowController;
}

@end

@implementation MyAppDelegate

- (void)applicationWillFinishLaunching:(NSNotification *)aNotification
{   
    myWindowController = [[NSWindowController alloc] initWithWindowNibName:@"MySecondWindow"];

    [[myWindowController window] center];
    [[myWindowController window] makeKeyAndOrderFront:self];
} 

@end
1 голос
/ 20 февраля 2011

Во втором наконечнике установите в качестве владельца файла класс делегата приложения. Затем прикрепите розетки по мере необходимости в IB. Во время выполнения позвоните по номеру [NSBundle loadNibNamed:owner:] и обязательно передайте себя в качестве владельца.

0 голосов
/ 20 февраля 2011

Да, это будет законно, если приложение-делегат является владельцем файла для загружаемого вами пера.Тем не менее, если вы разгрузите перо позже, вы должны убедиться, что все объекты верхнего уровня в пером правильно освобождены (иначе вы создадите утечку памяти).

...