From dde1b37f1f1e426e05d32a3c98618010dbd3d156 Mon Sep 17 00:00:00 2001 From: anlicheng <244108715@qq.com> Date: Fri, 16 Jan 2026 17:12:41 +0800 Subject: [PATCH] fix toolbar --- punchnet/Views/Network/NetworkState.swift | 13 ++- punchnet/Views/Network/NetworkView.swift | 115 ++++++++++++---------- punchnet/punchnetApp.swift | 4 +- 3 files changed, 77 insertions(+), 55 deletions(-) diff --git a/punchnet/Views/Network/NetworkState.swift b/punchnet/Views/Network/NetworkState.swift index 5769c88..021e929 100644 --- a/punchnet/Views/Network/NetworkState.swift +++ b/punchnet/Views/Network/NetworkState.swift @@ -55,10 +55,21 @@ class NetworkState { } // 状态管理 - var connectState: ConnectState = .connected + var connectState: ConnectState = .disconnected var model: NetworkModel = .init(name: "123@abc.com的网络") var showModel: ShowMode = .device + // 网络连接开关 + var isOn: Bool = false { + didSet { + if isOn { + self.connectState = .connected + } else { + self.connectState = .disconnected + } + } + } + // 当前选中的设备 var selectedDevice: Device? diff --git a/punchnet/Views/Network/NetworkView.swift b/punchnet/Views/Network/NetworkView.swift index d4bfd4a..efb4800 100644 --- a/punchnet/Views/Network/NetworkView.swift +++ b/punchnet/Views/Network/NetworkView.swift @@ -12,14 +12,41 @@ struct NetworkView: View { var body: some View { VStack { - HStack(alignment: .center) { - Text(state.model.name) - Text(">") - Spacer() + HStack { - Image("logo") - .resizable() - .frame(width: 25, height: 25) + VStack { + HStack(alignment: .center) { + Text(state.model.name) + Text(">") + Spacer() + } + + HStack { + Toggle("", isOn: $state.isOn) + .toggleStyle(SwitchToggleStyle(tint: .green)) + + Text("已连接") + + Spacer() + } + } + .frame(width: 320) + + // 显示设备和资源选项 + HStack { + Button { + self.state.showModel = .resource + } label: { + Text("资源") + } + + Button { + self.state.showModel = .device + } label: { + Text("设备") + } + } + Spacer() } Group { @@ -35,9 +62,17 @@ struct NetworkView: View { Spacer() } - .frame(width: 400, height: 400) .padding(.top, 10) .padding(.leading, 10) + .toolbar { + ToolbarItem(placement: .primaryAction) { + Button { + print("clicked") + } label: { + Image(systemName: "gearshape") + } + } + } } } @@ -54,36 +89,24 @@ struct NetworkWaitAuthView: View { struct NetworkDisconnctedView: View { @Bindable var state: NetworkState - @State var isOn: Bool = false var body: some View { - VStack { - HStack { - Toggle("", isOn: $isOn) - .toggleStyle(SwitchToggleStyle(tint: .green)) - - Text("未连接") - - Spacer() - } + ZStack { + Color.clear - ZStack { - Color.clear + Button { + print("call me here") + } label: { + Text("连接") + .font(.system(size: 14, weight: .regular)) + .padding([.top, .bottom], 8) + .padding([.leading, .trailing], 30) + .foregroundColor(.white) - Button { - print("call me here") - } label: { - Text("连接") - .font(.system(size: 14, weight: .regular)) - .padding([.top, .bottom], 8) - .padding([.leading, .trailing], 30) - .foregroundColor(.white) - - } - .background(Color(red: 74/255, green: 207/255, blue: 154/255)) - .cornerRadius(5) - .frame(width: 120, height: 35) } + .background(Color(red: 74/255, green: 207/255, blue: 154/255)) + .cornerRadius(5) + .frame(width: 120, height: 35) } } @@ -92,26 +115,14 @@ struct NetworkDisconnctedView: View { struct NetworkConnctedView: View { @Bindable var state: NetworkState - @State var isOn: Bool = true - + var body: some View { - VStack { - HStack { - Toggle("", isOn: $isOn) - .toggleStyle(SwitchToggleStyle(tint: .green)) - - Text("已连接") - - Spacer() - } - - Group { - switch state.showModel { - case .resource: - NetworkResourceGroupView(state: self.state) - case .device: - NetworkDeviceGroupView(state: self.state) - } + Group { + switch state.showModel { + case .resource: + NetworkResourceGroupView(state: self.state) + case .device: + NetworkDeviceGroupView(state: self.state) } } } diff --git a/punchnet/punchnetApp.swift b/punchnet/punchnetApp.swift index 8b14863..3011dbe 100644 --- a/punchnet/punchnetApp.swift +++ b/punchnet/punchnetApp.swift @@ -62,7 +62,7 @@ struct punchnetApp: App { window.setFrameOrigin(NSPoint(x: centerX, y: centerY)) } } - .toolbar(.hidden) + //.toolbar(.hidden) .navigationTitle("") } .commands { @@ -75,7 +75,7 @@ struct punchnetApp: App { } } .windowResizability(.contentSize) - + .windowToolbarStyle(.unified) Window("", id: "abortPunchnet") { AbortView()