gpt4 book ai didi

swift - 从命令行构建的 Swift 4 MacOS 应用程序不调用 AppDelegate#applicationDidFinishLaunching

转载 作者:行者123 更新时间:2023-11-30 11:15:53 24 4
gpt4 key购买 nike

这是完整的代码:

ma​​in.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 无法工作。

最佳答案

万岁,这只是因为方法的格式,我猜它默默地失败了。

func applicationWillFinishLaunching(_ notification: Notification) {
Swift.print("AppDelegate.applicationWillFinishLaunching")
}

func applicationDidFinishLaunching(_ notification: Notification) {
Swift.print("AppDelegate.applicationDidFinishLaunching")
}

关于swift - 从命令行构建的 Swift 4 MacOS 应用程序不调用 AppDelegate#applicationDidFinishLaunching,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51756038/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com