applicationDidFinishLaunching not called, using storyboards and swift3
Asked Answered
D

1

9

The applicationDidFinishLaunching is not being called when I run my app.

This is the code of my AppDelegate class:

@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {

    let statusItem = NSStatusBar.system().statusItem(withLength: NSSquareStatusItemLength)

    func applicationDidFinishLaunching(_ aNotification: Notification) {
        // Insert code here to initialize your application
    }

    func applicationWillTerminate(_ aNotification: Notification) {
        // Insert code here to tear down your application
    }


}

I am using Swift 3 and storyboards for my app.

The answer to applicationDidFinishLaunching - not triggering suggests to connect AppDelegate.swift to application object in storyboard. I don't have any application object there.

My app does not have main menu, it is agent, as I am trying to build something similar to spotlight.

What should I do to get applicationDidFinishLaunching running?

Defloration answered 26/2, 2017 at 18:23 Comment(0)
T
13

Even if your app is running as an agent your storyboard is supposed to have this structure:

enter image description here

If not, drag a blue cube (object) into the application scene, set the class of the object to AppDelegate and control-drag from Application to App Delegate and select delegate.

If you even have no Application Scene, create a new project with storyboard enabled, delete your current Main.storyboard file and drag the Main.storyboard of the new created project into your current project.

Tuberculate answered 26/2, 2017 at 18:43 Comment(3)
Thanks! I really missed the Application Scene.Defloration
How to make it without storyboard programmatically?Rickie
@Rickie You have to set the delegate in main right before running the appTuberculate

© 2022 - 2024 — McMap. All rights reserved.