2015-05-27 2 views
2

Когда вы создаете новый проект, я, кажется, помню, что вы можете получить доступ к базовому пустому окну, которое он создает в раскадровке, используя self.window в методах AppDelegate.Ссылка на главный NSWindow в AppDelegate (OSX)

Я также не могу установить ссылочную розетку в файл AppDelegate.h через раскадровку. Я просто галлюцинация или нет способа получить доступ к окну/контроллеру от AppDelegate?

Я смешиваю методы iOS и OSX?

+0

Вопрос очистки – squarefrog

ответ

5

Использование раскадровки, кажется, невозможно подключить WindowController к AppDelegate. Я использовал следующее, чтобы получить ссылку на главном окне:

AppDelegate.h

@property (weak) NSWindow* window; 

AppDelegate.m

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification { 
      _window = [[[NSApplication sharedApplication] windows] firstObject]; 
    } 

См this question для быстрого решения. Надеюсь, это поможет :)

0

Это работает для меня.

Я добавил к моему IBOutlet AppDelegate.h

@property (nonatomic) IBOutlet NSWindow *window; 

Затем в Interface Builder (MainMenu.xib для меня) выберите App Делегат:

enter image description here

Ваш IBOutlet должен быть в Connection inspector, справа:

enter image description here

Возможно, соединение между вашим .xib и вашим AppDelegate потеряно?

+0

Я попытался щелкнуть управление и перетащить в файл appdelegate.h, чтобы создать ссылочную точку, но он ничего не сделает (обычно эта синяя линия будет отображаться, а идентификатор для создания iboutlet) Я также использую раскадровку, а не .xib. Это в основном новое приложение для какао, использующее раскадровку. Я думаю, что я могу просто запутать основы iOS с OSX, но я чувствую, что мне нужно просто называть self.window из appdelegate.m, не делая ничего ... –

+0

Прошу прощения за вашу ссылку на расследование в вашем вопросе. Я не использовал приложения Cocoa с раскадрой, поэтому я, возможно, не смог бы помочь вам здесь. – Jasper

+0

Не беспокойтесь, я думаю, что нашел способ обойти свою проблему без необходимости доступа к окну через appdelegate! Спасибо за помощь :) –

Смежные вопросы