fix: Release 模式下 delegate 被 ARC 释放导致菜单灰色/双击失效

This commit is contained in:
JOJO 2026-04-25 11:44:14 +08:00
parent e1cfb27e16
commit 6a8b5532bd
3 changed files with 13 additions and 1 deletions

View File

@ -5,6 +5,9 @@ import Speech
/// Fn Control AI
final class AppDelegate: NSObject, NSApplicationDelegate {
/// ARC NSApplication.delegate weak
private static var retainedInstance: AppDelegate?
private let keyMonitor = KeyMonitor()
private let speechRecognizer = SpeechRecognizer()
private let audioMonitor = AudioLevelMonitor()
@ -15,6 +18,11 @@ final class AppDelegate: NSObject, NSApplicationDelegate {
private var isRecording = false
private var finalTranscription: String = ""
override init() {
super.init()
Self.retainedInstance = self
}
func applicationDidFinishLaunching(_ notification: Notification) {
NSApp.setActivationPolicy(.accessory)
beginPermissionFlow()

View File

@ -5,4 +5,8 @@ let delegate = AppDelegate()
app.setActivationPolicy(.accessory)
app.delegate = delegate
app.run()
// NSApplication.delegate weak ARC
withExtendedLifetime(delegate) {
app.run()
}