Ссылка основного NSWindow в AppDelegate, используя раскадровку?

Я пытаюсь установить выход для главного окна моего приложения в моем делегате приложения, а затем подключить его в Интерфейсном Разработчике. Я легко создаю розетку в приложении App Delegate:

@IBOutlet weak var mainWindow: NSWindow!

Однако в конструкторе интерфейсов я не могу подключить источник ссылок к делегату приложения. Вместо этого я могу подключить его только к оконному контроллеру, который, как я надеюсь, показывает этот рисунок:

введите описание изображения здесь

Первый объект - это оконный контроллер, а второй - первый ответчик, однако объект App Delegate отсутствует. В строке меню есть объект Делегат приложения:

введите описание изображения здесь

И я могу подключить что угодно, от меню до любых выходов в Делегат приложения.

Я полагаю, что могу получить доступ к объекту окна, используя:

NSApp.windows[0]

Но это может привести к ошибкам, особенно если у меня более одного окна.

7 голосов | спросил Charlie 7 J0000006Europe/Moscow 2015, 07:32:47

1 ответ


0

Я не знаю, правильно ли это, но это решит вашу проблему.

Декларируйте свойство NSWindow в AppDelegate

weak var window: NSWindow!

и задайте для свойства что-то вроде /instm /NSWindowController /windowWillLoad" rel =" noreferrer "> windowWillLoad NSWindowController

(NSApplication.sharedApplication().delegate as! AppDelegate).window = self.window

Вам нужно будет создать подкласс NSWindowController, чтобы определить windowWillLoad

ответил Kaunteya 7 J0000006Europe/Moscow 2015, 21:15:35

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132