Как создать IBOutlet для NSWindow Xcode macOS

Я пытаюсь создать IBOutlet для NSWindow в AppDelegate.swift, я могу создать IBOutlet для кнопок с помощью элемента управления + перетаскивания из раскадровки в быстрый файл, но я не могу сделать это для NSWindow. Как мне это сделать? Xcode 9.2 Свифт 4.0

Спасибо


person Dregg    schedule 22.07.2021    source источник
comment
Вы можете создать выход только для элементов управления, доступных в библиотеке представлений. Создайте свойство, если вы хотите ссылаться на окно в AppDelegate.   -  person RTXGamer    schedule 22.07.2021
comment
Я пытался использовать @property, но выдает ошибку: unknown attribute 'property'   -  person Dregg    schedule 22.07.2021
comment
Я пытаюсь сделать это stackoverflow.com/questions/34314789/   -  person Dregg    schedule 22.07.2021
comment
@property — это ключевое слово ObjC. Вы должны искать, как использовать @IBOutlet в Swift.   -  person EmilioPelaez    schedule 22.07.2021
comment
Где @property в этой ссылке?   -  person Eric    schedule 22.07.2021


Ответы (1)


Создайте свойство окна:

weak var window: NSWindow?

Ссылка на главное окно:

 func applicationDidFinishLaunching(_ aNotification: Notification) {
        window = NSApplication.shared.windows.first
    }
person RTXGamer    schedule 22.07.2021
comment
Спасибо, это сработало - person Dregg; 22.07.2021
comment
@Dregg Что вам нужно, так это использовать свойство окна просмотра контроллера представления. Просто убедитесь, что вы получили к нему доступ с помощью viewWillAppear или любого другого метода, кроме viewDidLoad, окно которого всегда будет нулевым - person Leo Dabus; 22.07.2021
comment
@LeoDabus Спасибо, это тоже сработало - person Dregg; 22.07.2021
comment
@Dregg Обязательно используйте окно просмотра. Он всегда будет возвращать правильное окно. Это не обязательно всегда первое окно. - person Leo Dabus; 22.07.2021