mirror of
https://github.com/HChaZZY/PiliPlus.git
synced 2025-12-06 09:13:48 +08:00
fix small black flicker window on startup for macOS (#1287)
This commit is contained in:
@@ -4,12 +4,26 @@ import FlutterMacOS
|
|||||||
class MainFlutterWindow: NSWindow {
|
class MainFlutterWindow: NSWindow {
|
||||||
override func awakeFromNib() {
|
override func awakeFromNib() {
|
||||||
let flutterViewController = FlutterViewController.init()
|
let flutterViewController = FlutterViewController.init()
|
||||||
let windowFrame = self.frame
|
// 先不显示窗口
|
||||||
|
self.isReleasedWhenClosed = false
|
||||||
self.contentViewController = flutterViewController
|
self.contentViewController = flutterViewController
|
||||||
self.setFrame(windowFrame, display: true)
|
self.setFrame(self.frame, display: true)
|
||||||
|
|
||||||
|
// 背景别用默认黑色
|
||||||
|
self.isOpaque = false
|
||||||
|
self.backgroundColor = .clear
|
||||||
|
|
||||||
RegisterGeneratedPlugins(registry: flutterViewController)
|
RegisterGeneratedPlugins(registry: flutterViewController)
|
||||||
|
|
||||||
|
// 监听首帧渲染完成再显示窗口
|
||||||
|
NotificationCenter.default.addObserver(
|
||||||
|
forName: NSNotification.Name("io.flutter.embedding.engine.firstFrame"),
|
||||||
|
object: flutterViewController.engine, queue: .main
|
||||||
|
) { [weak self] _ in
|
||||||
|
self?.makeKeyAndOrderFront(nil)
|
||||||
|
NSApp.activate(ignoringOtherApps: true)
|
||||||
|
}
|
||||||
|
// 不在这里调用 makeKeyAndOrderFront
|
||||||
super.awakeFromNib()
|
super.awakeFromNib()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user