这是完整的代码:
main.swift
import Cocoa
let delegate = AppDelegate()
NSApplication.shared.delegate = delegate
NSApplicationMain(CommandLine.argc, CommandLine.unsafeArgv)
AppDelegate.swift
import Cocoa
class AppDelegate: NSObject, NSApplicationDelegate {
override init() {
Swift.print("AppDelegate.init")
super.init()
Swift.print("AppDelegate.init2")
}
func applicationDidFinishLaunching(aNotification: NSNotification) {
Swift.print("AppDelegate.applicationDidFinishLaunching")
}
func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool {
Swift.print("AppDelegate.applicationShouldTerminateAfterLastWindowClosed")
}
}
然后我用以下代码进行编译:
swiftc Sources/*
./main
它记录:
AppDelegate.init
AppDelegate.init2
但是随后它不记录其他任何内容,因此我使用CTRL + C将其关闭。不确定为什么无法达到applicationDidFinishLaunching
方法。想知道是否有人知道解决方法,似乎只有一种方法需要在某处调用,但我不确定。
我认为这可能导致其他问题,例如NSMenu无法正常工作。
答案 0 :(得分:0)
万岁,这仅仅是因为方法的格式,我想这是默默地失败了。
func applicationWillFinishLaunching(_ notification: Notification) {
Swift.print("AppDelegate.applicationWillFinishLaunching")
}
func applicationDidFinishLaunching(_ notification: Notification) {
Swift.print("AppDelegate.applicationDidFinishLaunching")
}