Mar*_*ark 5 dock appdelegate swiftui
当 SwiftUI 应用程序最小化并单击停靠图标时。该应用程序不会像其他应用程序一样被减少并放在前面。
import SwiftUI
@main
struct MyApp: App {
@NSApplicationDelegateAdaptor(AppDelegate.self) var appDelegate
var body: some Scene {
WindowGroup {
MainView()
}
}
}
class AppDelegate: NSObject, NSApplicationDelegate {
func applicationShouldHandleReopen(_ sender: NSApplication, hasVisibleWindows flag: Bool) -> Bool {
// THIS IS NEVER CALLED!!!
if !flag {
for window: AnyObject in sender.windows {
window.makeKeyAndOrderFront(self)
}
}
return true
}
}
Run Code Online (Sandbox Code Playgroud)
其他委托方法(例如 applicationDidLaunch)确实会被调用,因此这不是链接问题。有谁知道如何让它发挥作用?
使用确实成为主动回调,测试与 Xcode 13.3 / macOS 12.2.1 一起使用
喜欢,
func applicationDidBecomeActive(_ notification: Notification) {
if NSApp.windows.compactMap({ $0.isVisible ? Optional(true) : nil }).isEmpty {
NSApp.windows.first?.makeKeyAndOrderFront(self)
}
}
Run Code Online (Sandbox Code Playgroud)
注意:如果应用程序处于活动状态,则只能application(Will/Did)Update
通过单击 Dock 图标来调用。
归档时间: |
|
查看次数: |
1689 次 |
最近记录: |