ios SwiftUI键盘字词建议栏

iqjalb3h  于 2022-11-26  发布在  iOS
关注(0)|答案(3)|浏览(174)

如何删除键盘上的单词建议栏?我尝试了.disableAutocorrection(true),但它似乎并没有真正隐藏它,如图所示。如果我使用secureField,那么显然,它会隐藏它,但我如何在常规文本字段中做到这一点呢?

dfddblmv

dfddblmv1#

按以下方式设置TextField

TextField("Enter some text...", text: $someText)
            .keyboardType(.alphabet)
            .disableAutocorrection(true)

仅仅.disableAutocorrection(true)就留下了建议栏的残余,但是添加.keyboardType(.alphabet)就会让它全部消失。

mspsb9vt

mspsb9vt2#

为此,我要做的是更改您正在使用的键盘类型,几乎任何其他键盘类型与.disableAutocorrection(true)的组合都可以实现此目的,这实际上取决于您需要用户在TextField中输入什么。
比如你可以这样做。

TextField("test",text: $string)
            .font((Font.system(size: 17, design: .default)))
            .lineLimit(1)
            .autocapitalization(.none)
            .disableAutocorrection(true)/// Disable autocorrection 
            .frame(width: screenSize.size.width*(0.5), height: 30,alignment: .center)
            .padding(EdgeInsets(top: 0, leading: 15, bottom: 0, trailing: 15))
            .background(Color.gray.opacity(0.7))
            .keyboardType(.asciiCapable)/// KEYBOARD TYPE
            .cornerRadius(10)
            .foregroundColor(.white)

值得一提的是,某些语言键盘(如中文或日文)不会隐藏键盘(只有使用SecureField时才会隐藏)

eeq64g8w

eeq64g8w3#

我想写这个作为一个答案得到语法突出。它是基于Yrb的答案。它是一个修饰符,允许你有一个功能,键盘类型是灵活的。它只是改变。默认为。字母表,使其工作。

extension View {

  func noAutoSuggestions(_ keyBd: UIKeyboardType) -> some View {
    self.keyboardType((keyBd == .default) ? .alphabet : keyBd)
        .disableAutocorrection(true)
  }

}// extension View

相关问题