禁用UITextField的自动更正

时间:2009-05-05 23:02:34

标签: ios objective-c uitextfield

当我尝试在我的iPhone应用程序(UITextfield)中编辑文本时,它会自动更正我的输入。

你可以告诉我如何禁用它?

7 个答案:

答案 0 :(得分:136)

UITextField* f = [[UITextField alloc] init];
f.autocorrectionType = UITextAutocorrectionTypeNo;        

答案 1 :(得分:23)

Swift版本

我在这里找到了一个Swift版本:

myInput.autocorrectionType = .No

另请阅读@MaikelS

的答案

Swift 3.0

textField.autocorrectionType = .no

答案 2 :(得分:13)

您可以使用UITextInputTraits协议来实现此目的:

myInput.autoCorrectionType = UITextAutocorrectionTypeNo;

有关详细信息,请参阅here

答案 3 :(得分:9)

Interface Builder还有一个下拉字段来禁用它。由于您更有可能在界面构建器中创建文本字段,因此请在那里查找。您可以在“更正”旁边的“属性”检查器中找到它。

答案 4 :(得分:3)

您还可以通过选择'属性检查器来在故事板中进行设置。并且根据“修正”#39;您可以选择:'默认','是'并且没有' enter image description here enter image description here

答案 5 :(得分:1)

在 SwiftUI 中,您可以使用 .disableAutocorrection(true) 修饰符。

Hiere 是一个真实的例子:

VStack {
    TextField("title", text: $LoginModel.email)
        .autocapitalization(.none)
        .disableAutocorrection(true)
        .foregroundColor(.white)
}

答案 6 :(得分:0)

斯威夫特 5:

这就是我在项目中实现电子邮件地址字段的方式

private let emailTextField: UITextField = {
    let tf = CustomTextField(placeholder: "Email address")
    tf.keyboardType = .emailAddress
    tf.autocorrectionType = .no        //disable auto correction
    tf.autocapitalizationType = .none   //disable default capitalization
    return tf
}()

CustomTextField 是我的扩展类(这里不重要)