[英]SwiftUI Dismiss keyboard on List NavigationLink item tap
我有一個項目列表和一個用於搜索關鍵字的文本字段。 當我在列表上搜索並點擊項目時,導航鏈接比鍵盤關閉更快,這會導致下一個滾動視圖中出現禁用區域。
// search TextField
HStack {
Spacer(minLength: 10)
Image(systemName: "magnifyingglass")
.foregroundColor(.gray)
TextField("Search",
text: self.$textbox){
UIApplication.shared.endEditing()
}
.onChange(of: textbox) {
print($0)
dictionaryListVM.getResult(language: self.currentLanguage, text: self.textbox)
self.theId += 1
}
.accessibility(identifier: "loginUserName")
.background(Color.white)
.frame(height: 10, alignment: .leading)
.padding()
}.overlay(
RoundedRectangle(cornerRadius: 4)
.stroke(Color.gray, lineWidth: 2)
)
// Subview for displaying items:
GeometryReader { reader in
ScrollView {
VStack {
if model.dataLoaded {
List {
ForEach(self.model.englishDictionaries, id: \.id) { item in
ZStack {
VStack(alignment: .leading, spacing: 4) {
Text("\(item.value)").font(.title2)
Text("\(item.pairWord)").foregroundColor(.gray).font(.caption)
}
NavigationLink(destination: WordDetailView(englishWordId: item.id, englishWord: item.value, lang: "en")) {
}
.isDetailLink(false)
.buttonStyle(PlainButtonStyle()).frame(width:0).opacity(0)
}
}
}.frame(height: reader.size.height)
.animation(.linear)
}else{
Text("Words sync inprogress, please comeback later.")
}
}
}.padding(.leading, 10)
}
所以,我想確保我的鍵盤在導航到下一個視圖之前是令人沮喪的。
查看演示中的問題
我相信您可以使用@FocusState
屬性包裝器來關閉鍵盤。
@FocusState private var isFocused: Bool
.focused(_:)
視圖修飾符添加到TextField
:TextField("Hello There", text: $someText)
.focused($isFocused)
$isFocused
。 您可以設置如下所示:isFocused = false
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.