在导航栏中的 SwiftUI 文本字段只允许一次输入一个字符。

时间:2021-08-12 04:31:30

标签: swiftui

我有一个搜索栏,在导航视图的导航栏内使用。但是每次只能输入一个字符后就会失去焦点,必须重新点击文本框才能输入另一个字符。

文本框目前是导航栏的工具栏项:

. 工具栏 {
    // 大块代码只是为了格式化搜索栏
    工具栏项(位置: . 主要) {
        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 变量用于包含灰色取消按钮,允许用户清除输入。

任何人知道如何使其像普通文本框一样工作吗?或者这种情况的原因是什么?

0 个答案:

没有答案