首页 > 解决方案 > SwiftUI,在文本字段上使用 textContentType 会导致延迟运行 14.4.1

问题描述

我在我的主应用程序中看到了这个问题,所以我在这里用一个文本字段组合了一个简单的小应用程序。在 TextField 上设置.textContentType会导致应用程序在键盘上相对较快地输入时出现卡顿和滞后。使用.emailAdress似乎是最糟糕的,因为.givenName稍微好一点,但仍然明显滞后。添加或删除.keyboardType对我的问题没有影响。我正在使用运行 14.4.1 的物理 iPhone 12 进行测试。

struct ContentView: View {
    @State var text = ""
    var body: some View {
        ZStack {
            Color.red
            VStack {
                TextField("TextField", text: $text)
                    .textContentType(.emailAddress) //comment this out and lag is gone
                    .background(Color.green)
            }
        }
        .onTapGesture {
            self.hideKeyboard()
        }
    }
}

extension View {
    func hideKeyboard() {
        UIApplication.shared.sendAction(#selector(UIResponder.resignFirstResponder), 
                                        to: nil, from: nil, for: nil)
    }
}

任何帮助将不胜感激。

标签: swiftswiftui

解决方案


因此,我将我的 iOS 升级到 OS 到 14.7.1,因为 @workingdog 正在使用它,它似乎解决了我的问题。正如我之前所说,我使用的是 14.4.1,它一定是操作系统问题。问题在操作系统更新上得到解决。谢谢!


推荐阅读