解决设置的view问题

This commit is contained in:
anlicheng 2026-02-28 12:03:43 +08:00
parent 58aa779a60
commit 1e4e10f847
3 changed files with 32 additions and 24 deletions

View File

@ -9,6 +9,7 @@ import SwiftUI
struct NetworkView: View { struct NetworkView: View {
@Environment(UserContext.self) var userContext: UserContext @Environment(UserContext.self) var userContext: UserContext
@Environment(\.openWindow) private var openWindow
@State private var networkModel = NetworkModel() @State private var networkModel = NetworkModel()
@State private var showMode: ShowMode = .resource @State private var showMode: ShowMode = .resource
@ -41,18 +42,20 @@ struct NetworkView: View {
} }
.frame(width: 320) .frame(width: 320)
// if self.networkModel.connectState == .connected {
HStack { //
Button { HStack {
self.showMode = .resource Button {
} label: { self.showMode = .resource
Text("资源") } label: {
} Text("资源")
}
Button {
self.showMode = .device Button {
} label: { self.showMode = .device
Text("设备") } label: {
Text("设备")
}
} }
} }
Spacer() Spacer()
@ -81,11 +84,13 @@ struct NetworkView: View {
.padding(.top, 10) .padding(.top, 10)
.padding(.leading, 10) .padding(.leading, 10)
.toolbar { .toolbar {
ToolbarItem(placement: .primaryAction) { if self.networkModel.connectState == .connected {
Button { ToolbarItem(placement: .primaryAction) {
print("clicked") Button {
} label: { openWindow(id: "settings")
Image(systemName: "gearshape") } label: {
Image(systemName: "gearshape")
}
} }
} }
} }

View File

@ -8,6 +8,7 @@
import SwiftUI import SwiftUI
struct SettingsView: View { struct SettingsView: View {
@State private var columnVisibility: NavigationSplitViewVisibility = .all
@State private var state = SettingsState() @State private var state = SettingsState()
@State private var hovering = false @State private var hovering = false
@State private var selectedMenu: MenuItem = .accout @State private var selectedMenu: MenuItem = .accout
@ -21,7 +22,7 @@ struct SettingsView: View {
} }
var body: some View { var body: some View {
NavigationSplitView { NavigationSplitView(columnVisibility: $columnVisibility) {
List(MenuItem.allCases, id: \.self) { menu in List(MenuItem.allCases, id: \.self) { menu in
HStack(alignment: .center) { HStack(alignment: .center) {
Rectangle() Rectangle()
@ -46,7 +47,7 @@ struct SettingsView: View {
} }
} }
.listStyle(.sidebar) .listStyle(.sidebar)
.border(Color.red) .frame(minWidth: 180, idealWidth: 200, maxWidth: 250)
} detail: { } detail: {
VStack(alignment: .leading, spacing: 0) { VStack(alignment: .leading, spacing: 0) {

View File

@ -48,10 +48,12 @@ struct punchnetApp: App {
var body: some Scene { var body: some Scene {
WindowGroup(id: "mainWindow") { WindowGroup(id: "mainWindow") {
RootView() RootView()
//NetworkDisconnctedView(state: NetworkState()) .frame(width: 800, height: 500)
.onAppear { .onAppear {
// //
guard let screenFrame = NSScreen.main?.frame else { return } guard let screenFrame = NSScreen.main?.frame else {
return
}
// //
NSApplication.shared.windows.forEach { window in NSApplication.shared.windows.forEach { window in
@ -81,10 +83,10 @@ struct punchnetApp: App {
.windowResizability(.contentSize) .windowResizability(.contentSize)
.windowToolbarStyle(.unified) .windowToolbarStyle(.unified)
Window("", id: "abortPunchnet") { Window("设置", id: "settings") {
AbortView() SettingsView()
.frame(minWidth: 300, maxWidth: 300, minHeight: 500, maxHeight: 500)
} }
.defaultSize(width: 800, height: 500)
MenuBarExtra("punchnet", image: "logo_32") { MenuBarExtra("punchnet", image: "logo_32") {
VStack { VStack {