diff --git a/PowerBar.xcodeproj/project.pbxproj b/PowerBar.xcodeproj/project.pbxproj index 2a29666..2da8e54 100644 --- a/PowerBar.xcodeproj/project.pbxproj +++ b/PowerBar.xcodeproj/project.pbxproj @@ -274,6 +274,7 @@ SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; SWIFT_VERSION = 5.0; + INFOPLIST_KEY_LSUIElement = YES; }; name = Debug; }; @@ -306,6 +307,7 @@ SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; SWIFT_VERSION = 5.0; + INFOPLIST_KEY_LSUIElement = YES; }; name = Release; }; diff --git a/PowerBar/PowerBarApp.swift b/PowerBar/PowerBarApp.swift index 5399f0d..cb35be1 100644 --- a/PowerBar/PowerBarApp.swift +++ b/PowerBar/PowerBarApp.swift @@ -1,4 +1,5 @@ import SwiftUI +import AppKit @main struct PowerBarApp: App { @@ -25,18 +26,6 @@ struct PowerBarApp: App { .foregroundColor(appState.isFunctionEnabled ? .green : .gray) } } - // 添加主窗口用于显示指引界面 - WindowGroup { - if !hasShownGuide { - GuideView() - .onDisappear { - hasShownGuide = true - } - } - } - .windowStyle(.hiddenTitleBar) - .defaultSize(width: 400, height: 400) - .windowResizability(.contentSize) } } @@ -136,7 +125,7 @@ struct MenuContent: View { set: { _ in appState.toggleLaunchAtLogin() } )) { HStack { - Image(systemName: "power.on.circle") + Image(systemName: "power.circle") .frame(width: 20) Text("开机自动启动") } @@ -149,12 +138,8 @@ struct MenuContent: View { // 显示指引界面选项 Button("查看使用指南") { - // 这里需要实现显示指引界面的逻辑 - // 我们可以使用 AppStorage 来控制指引界面的显示 - UserDefaults.standard.set(false, forKey: "hasShownGuide") - // 重启应用或打开新窗口显示指引界面 - // 由于 macOS 应用的限制,我们可以提示用户重新启动应用查看指引 - NSAlert.showAlert(title: "使用指南", message: "请重启应用以查看使用指南,或在下次启动时自动显示。") + // 直接打开指引窗口 + openGuideWindow() } .buttonStyle(.plain) .font(.caption) @@ -176,10 +161,29 @@ struct MenuContent: View { .frame(minWidth: 280) .background( RoundedRectangle(cornerRadius: 12) - .fill(Color.white) + .fill(Color(.windowBackgroundColor)) .shadow(radius: 4) ) } + + // 打开指引窗口 + private func openGuideWindow() { + let window = NSWindow( + contentRect: NSRect(x: 0, y: 0, width: 400, height: 500), + styleMask: [.titled, .closable, .resizable], + backing: .buffered, + defer: false + ) + + // 设置窗口属性 + window.title = "PowerBar 使用指南" + window.contentView = NSHostingView(rootView: GuideView()) + window.center() + window.makeKeyAndOrderFront(nil) + + // 记录已显示指引 + UserDefaults.standard.set(true, forKey: "hasShownGuide") + } } // 扩展 NSAlert,添加一个便捷方法来显示警报 @@ -344,7 +348,7 @@ struct GuideView: View { .frame(width: 400, height: 500) .background( RoundedRectangle(cornerRadius: 12) - .fill(Color.white) + .fill(Color(.windowBackgroundColor)) ) .shadow(radius: 10) }