我有一个搜索栏,在导航视图的导航栏内使用。但是每次只能输入一个字符后就会失去焦点,必须重新点击文本框才能输入另一个字符。
文本框目前是导航栏的工具栏项:
. 工具栏 {
// 大块代码只是为了格式化搜索栏
工具栏项(位置: . 主要) {
TextField("查找收据", text: $searchInput, onCommit: {self.runSearch = true})
.padding(7)
.padding(. 水平, 50)
.background(Color(.systemGray6))
.圆角(8)
.overlay(
堆叠布局 {
Image(系统名称: "magnifyingglass")
。前景色 (. 灰色)
。frame(minWidth: 0, maxWidth: .infinity, alignment: .leading)
。padding(. 左侧, 8)
如果 isEditing {
Button(action: {
self.searchInput = ""
}) {
Image(系统名称: "multiply.circle.fill")
。前景色 (. 灰色)
。padding(. 右侧, 8)
}
}
}
)
.onTapGesture {
self.isEditing = true
}
}
}
isEditing 变量用于包含灰色取消按钮,允许用户清除输入。
任何人知道如何使其像普通文本框一样工作吗?或者这种情况的原因是什么?