はじめに
MenuBarExtraがクローズした事を検知したいのにできない
— Taishin Miyamoto (@SNQ2001) January 2, 2023
onDisappearも効かない
scenePhaseで検知もできない
NSWindow.willCloseNotificationかと思ったけど違った
どうすればいいんだ
menuBarExtraStyle(.window)
で閉じたことを検知したかったのですが、未だに出来ていません。
わかる方いたらコメントください。
いろいろ試してたら開いたことを検知できたので記録しておきます。
やりかた
import SwiftUI
import Combine
import AppKit
final class AppModel: ObservableObject {
private var cancellable = Set<AnyCancellable>()
init() {
NotificationCenter.default.publisher(for: NSWindow.didBecomeKeyNotification)
.sink { _ in
print("✅")
}
.store(in: &cancellable)
}
}
@main
struct swiftui_menubarextra_sampleApp: App {
@StateObject private var appModel = AppModel()
var body: some Scene {
MenuBarExtra {
ContentView()
} label: {
Image(systemName: "folder.fill")
}
.menuBarExtraStyle(.window)
}
}
おわり
didBecomeKeyNotification
は監視対象のウインドウが一番前に来た時に通知するもの??かな??