Swift命令行工具未接收DistributedNotificationCenter通知

Swift命令行工具未接收DistributedNotificationCenter通知,swift,macos,command-line-interface,nsnotificationcenter,macos-darkmode,Swift,Macos,Command Line Interface,Nsnotificationcenter,Macos Darkmode,我试图创建一个非常基本的Swift命令行应用程序,当macosui切换到/从亮/暗模式时,它会使用WebSocket向另一个应用程序发送信号 由于某些原因,命令行工具没有收到来自DistributedNotificationCenter的任何通知,特别是AppleInterfaceTheMechanedNotification。但是,在applicationdFinishLaunching上的Cocoa UI应用程序中运行完全相同的代码可以很好地工作 我找到了一个可以打印所有通知的工具,但它也没

我试图创建一个非常基本的Swift命令行应用程序,当macosui切换到/从亮/暗模式时,它会使用WebSocket向另一个应用程序发送信号

由于某些原因,命令行工具没有收到来自
DistributedNotificationCenter
的任何通知,特别是
AppleInterfaceTheMechanedNotification
。但是,在
applicationdFinishLaunching
上的Cocoa UI应用程序中运行完全相同的代码可以很好地工作

我找到了一个可以打印所有通知的工具,但它也没有任何作用。这让我怀疑苹果可能改变了什么,但我似乎在网上找不到任何关于它的信息。是否需要设置某些Xcode项目设置

//main.swift
进口基金会
类暗模式观测器{
func observe(){
打印(“观察”)
DistributedNotificationCenter.default.addObserver(
forName:Notification.Name(“AppleInterfaceTheMechChangedNotification”),
对象:无,
队列:无,
使用:self.interfaceModeChanged(通知:)
)
}
func接口更改(通知:通知){
打印(“通知”,通知)
}
}
让observer=DarkModeObserver.init()
观察者
RunLoop.main.run()

我设法让iTunes通知正常工作,所以只是主题更改通知不起作用。有鉴于此,我怀疑苹果只会向UI/NSApplication应用程序发送通知。因此,用以下工程替换上面的最后3条线路:

let app = NSApplication.shared

class AppDelegate: NSObject, NSApplicationDelegate {

    func applicationDidFinishLaunching(_ notification: Notification) {
        let observer = DarkModeObserver.init()
        observer.observe()
    }

}

let delegate = AppDelegate()
app.delegate = delegate
app.run()