Search code examples
cocoaswift3xcode-storyboard

applicationDidFinishLaunching not called, using storyboards and swift3


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?


Solution

  • 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.