Главное окно не всегда инициализируется в applicationDidFinishLaunching - PullRequest
0 голосов
/ 04 октября 2018

Я устанавливаю фоновое изображение для главного окна моего приложения внутри делегата приложения:

func applicationDidFinishLaunching(_ aNotification: Notification) {

    if let mw = NSApplication.shared.mainWindow {
        mw.isMovableByWindowBackground = true

        mw.backgroundColor = NSColor.init(red: 0.3, green: 0.3, blue: 0.3, alpha: 1.0)

        if let cv = mw.contentView {
            cv.wantsLayer = true
            let image = NSImage(named: NSImage.Name(rawValue: "bkg"))
            cv.layer!.contents = image
        }
        else {
            print("Content view is not initialized yet")
        }
    }
    else {
        print("Main window is not initialized yet")
    }
}

Однако иногда я вижу, что mainWindow возвращает nil.Так что я думаю applicationDidFinishLaunching не лучшее место для размещения моего кода.Также иногда я замечаю, что во время обеда в приложении фон по умолчанию появляется в мгновение ока, а затем применяется фоновое изображение.

Где лучше всего разместить мой код для применения фонового изображения?

...