fix
This commit is contained in:
parent
efa14a3071
commit
5ec207e1fa
@ -20,12 +20,12 @@ class SettingsState {
|
|||||||
var name: String
|
var name: String
|
||||||
}
|
}
|
||||||
|
|
||||||
enum MenuItem {
|
enum MenuItem: String, CaseIterable {
|
||||||
case accout
|
case accout = "账号"
|
||||||
case network
|
case network = "网络"
|
||||||
case device
|
case device = "设备"
|
||||||
case system
|
case system = "软件"
|
||||||
case about
|
case about = "关于"
|
||||||
}
|
}
|
||||||
|
|
||||||
var networks: [Network]
|
var networks: [Network]
|
||||||
|
|||||||
@ -9,15 +9,32 @@ import SwiftUI
|
|||||||
|
|
||||||
struct SettingsView: View {
|
struct SettingsView: View {
|
||||||
@State private var state = SettingsState()
|
@State private var state = SettingsState()
|
||||||
|
@State private var hovering = false
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
NavigationSplitView {
|
NavigationSplitView {
|
||||||
List {
|
List(SettingsState.MenuItem.allCases, id: \.self) { menu in
|
||||||
SettingsMenuItemView(title: "账号", .accout, state: state)
|
HStack(alignment: .center) {
|
||||||
SettingsMenuItemView(title: "网络", .network, state: state)
|
Rectangle()
|
||||||
SettingsMenuItemView(title: "设备", .device, state: state)
|
.frame(width: 3, height: 25)
|
||||||
SettingsMenuItemView(title: "软件", .system, state: state)
|
.foregroundColor(self.state.currentMeun == menu ? .black : .clear)
|
||||||
SettingsMenuItemView(title: "关于", .about, state: state)
|
|
||||||
|
Text(menu.rawValue)
|
||||||
|
|
||||||
|
Spacer()
|
||||||
|
}
|
||||||
|
.contentShape(Rectangle())
|
||||||
|
.onTapGesture {
|
||||||
|
self.state.currentMeun = menu
|
||||||
|
}
|
||||||
|
.onHover { inside in
|
||||||
|
hovering = inside
|
||||||
|
if inside {
|
||||||
|
NSCursor.pointingHand.push()
|
||||||
|
} else {
|
||||||
|
NSCursor.pop()
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.listStyle(.sidebar)
|
.listStyle(.sidebar)
|
||||||
.border(Color.red)
|
.border(Color.red)
|
||||||
@ -45,32 +62,6 @@ struct SettingsView: View {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
struct SettingsMenuItemView: View {
|
|
||||||
var title: String
|
|
||||||
var role: SettingsState.MenuItem
|
|
||||||
@Bindable var state: SettingsState
|
|
||||||
|
|
||||||
init(title: String, _ role: SettingsState.MenuItem, state: SettingsState) {
|
|
||||||
self.title = title
|
|
||||||
self.role = role
|
|
||||||
self.state = state
|
|
||||||
}
|
|
||||||
|
|
||||||
var body: some View {
|
|
||||||
HStack(alignment: .center) {
|
|
||||||
Rectangle()
|
|
||||||
.frame(width: 3, height: 25)
|
|
||||||
.foregroundColor(self.state.currentMeun == role ? .black : .clear)
|
|
||||||
|
|
||||||
Text(title)
|
|
||||||
.onTapGesture {
|
|
||||||
self.state.currentMeun = self.role
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#Preview {
|
#Preview {
|
||||||
SettingsView()
|
SettingsView()
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user