From 213addcc4a6c87550ae78a59135b016a1de56eb9 Mon Sep 17 00:00:00 2001 From: anlicheng <244108715@qq.com> Date: Mon, 19 May 2025 12:46:38 +0800 Subject: [PATCH] fix menu --- punchnet/punchnetApp.swift | 46 +++++++++++++++++++++++++------------- 1 file changed, 30 insertions(+), 16 deletions(-) diff --git a/punchnet/punchnetApp.swift b/punchnet/punchnetApp.swift index 19b63d9..0eb8178 100644 --- a/punchnet/punchnetApp.swift +++ b/punchnet/punchnetApp.swift @@ -36,23 +36,42 @@ struct punchnetApp: App { var body: some Scene { WindowGroup(id: "mainWindow") { ContentView() + .frame(minWidth: 300, maxWidth: 300, minHeight: 500, maxHeight: 500) + .onAppear { + // 获取主屏幕的尺寸 + guard let screenFrame = NSScreen.main?.frame else { return } + + // 获取当前应用的窗口(假设只有一个窗口) + NSApplication.shared.windows.forEach { window in + // 计算窗口的中心位置 + let windowWidth = window.frame.width + let windowHeight = window.frame.height + let centerX = (screenFrame.width - windowWidth) / 2 + let centerY = (screenFrame.height - windowHeight) / 2 + + // 设置窗口位置 + window.setFrameOrigin(NSPoint(x: centerX, y: centerY)) + } + } } .commands { CommandGroup(replacing: .appInfo) { Button { - openWindow(id: "abortSDLAN") + openWindow(id: "abortPunchnet") } label: { - Text("About sdlan") + Text("About Punchnet") } } } + .windowResizability(.contentSize) - Window("", id: "abortSDLAN") { + + Window("", id: "abortPunchnet") { AbortView() + .frame(minWidth: 300, maxWidth: 300, minHeight: 500, maxHeight: 500) } - //.modelContainer(sharedModelContainer) - MenuBarExtra("sdlanApp", systemImage: "hammer") { + MenuBarExtra("punchnet", image: "logo_32") { VStack { Button(action: { self.menuClick() @@ -74,17 +93,12 @@ struct punchnetApp: App { private func menuClick() { switch self.vpnManager.vpnStatus { case .disconnected: - if token.isEmpty { - let windows = NSApplication.shared.windows - if let window = windows.first(where: {$0.title == "sdlan"}) { - window.level = .floating - } else { - self.openWindow(id: "mainWindow") - } - } else { - Task { - try await vpnManager.enableVpn(options: ["token": token as NSObject]) - } + Task { + try await vpnManager.enableVpn(options: [ + "version:": SystemConfig.version as NSObject, + "installed_channel": SystemConfig.installedChannel as NSObject, + "token": token as NSObject + ]) } case .connected: Task {