Skip to content

Commit 4dcbf6c

Browse files
committed
refactor: Improve focus management in list views by removing unnecessary delays and ensuring immediate focus upon view appearance and data source switch notifications.
1 parent 64b2b96 commit 4dcbf6c

5 files changed

Lines changed: 15 additions & 15 deletions

File tree

SyncNos/Views/AppleBooks/AppleBooksListView.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -133,14 +133,14 @@ struct AppleBooksListView: View {
133133
await viewModel.loadBooks()
134134
}
135135
}
136-
// 延迟获取焦点,确保视图已完全加载
137-
DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
136+
// 获取焦点(避免额外延迟引入的竞态)
137+
DispatchQueue.main.async {
138138
isListFocused = true
139139
}
140140
}
141141
// 监听数据源切换通知,切换到此视图时获取焦点
142142
.onReceive(NotificationCenter.default.publisher(for: Notification.Name("DataSourceSwitchedToAppleBooks")).receive(on: DispatchQueue.main)) { _ in
143-
DispatchQueue.main.asyncAfter(deadline: .now() + 0.15) {
143+
DispatchQueue.main.async {
144144
isListFocused = true
145145
}
146146
}

SyncNos/Views/Chats/ChatListView.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,14 +78,14 @@ struct ChatListView: View {
7878
.listStyle(.sidebar)
7979
.focused($isListFocused)
8080
.onAppear {
81-
// 延迟获取焦点,确保视图已完全加载
82-
DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
81+
// 获取焦点(避免额外延迟引入的竞态)
82+
DispatchQueue.main.async {
8383
isListFocused = true
8484
}
8585
}
8686
// 监听数据源切换通知,切换到此视图时获取焦点
8787
.onReceive(NotificationCenter.default.publisher(for: Notification.Name("DataSourceSwitchedToChats")).receive(on: DispatchQueue.main)) { _ in
88-
DispatchQueue.main.asyncAfter(deadline: .now() + 0.15) {
88+
DispatchQueue.main.async {
8989
isListFocused = true
9090
}
9191
}

SyncNos/Views/Dedao/DedaoListView.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -115,14 +115,14 @@ struct DedaoListView: View {
115115
await viewModel.loadBooks()
116116
}
117117
}
118-
// 延迟获取焦点,确保视图已完全加载
119-
DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
118+
// 获取焦点(避免额外延迟引入的竞态)
119+
DispatchQueue.main.async {
120120
isListFocused = true
121121
}
122122
}
123123
// 监听数据源切换通知,切换到此视图时获取焦点
124124
.onReceive(NotificationCenter.default.publisher(for: Notification.Name("DataSourceSwitchedToDedao")).receive(on: DispatchQueue.main)) { _ in
125-
DispatchQueue.main.asyncAfter(deadline: .now() + 0.15) {
125+
DispatchQueue.main.async {
126126
isListFocused = true
127127
}
128128
}

SyncNos/Views/GoodLinks/GoodLinksListView.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -134,14 +134,14 @@ struct GoodLinksListView: View {
134134
await viewModel.loadRecentLinks()
135135
}
136136
}
137-
// 延迟获取焦点,确保视图已完全加载
138-
DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
137+
// 获取焦点(避免额外延迟引入的竞态)
138+
DispatchQueue.main.async {
139139
isListFocused = true
140140
}
141141
}
142142
// 监听数据源切换通知,切换到此视图时获取焦点
143143
.onReceive(NotificationCenter.default.publisher(for: Notification.Name("DataSourceSwitchedToGoodLinks")).receive(on: DispatchQueue.main)) { _ in
144-
DispatchQueue.main.asyncAfter(deadline: .now() + 0.15) {
144+
DispatchQueue.main.async {
145145
isListFocused = true
146146
}
147147
}

SyncNos/Views/WeRead/WeReadListView.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -108,14 +108,14 @@ struct WeReadListView: View {
108108
await viewModel.loadBooks()
109109
}
110110
}
111-
// 延迟获取焦点,确保视图已完全加载
112-
DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
111+
// 获取焦点(避免额外延迟引入的竞态)
112+
DispatchQueue.main.async {
113113
isListFocused = true
114114
}
115115
}
116116
// 监听数据源切换通知,切换到此视图时获取焦点
117117
.onReceive(NotificationCenter.default.publisher(for: Notification.Name("DataSourceSwitchedToWeRead")).receive(on: DispatchQueue.main)) { _ in
118-
DispatchQueue.main.asyncAfter(deadline: .now() + 0.15) {
118+
DispatchQueue.main.async {
119119
isListFocused = true
120120
}
121121
}

0 commit comments

Comments
 (0)