禁用UITextField的自动更正

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

你能让我知道我怎么能禁用这个?

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

Swift版本

我在这里登陆寻找这个Swift版本:

 myInput.autocorrectionType = .No 

还请阅读@MaikelS的答案

Swift 3.0

 textField.autocorrectionType = .no 

你可以使用UITextInputTraits协议来实现这一点:

 myInput.autoCorrectionType = UITextAutocorrectionTypeNo; 

在这里看到更多的细节。

界面生成器也有一个下拉字段来禁用这个。 由于您更可能在界面构build器中创build文本框,请在此处查找。 您可以在“更正”旁边的“属性”检查器中find它。

您也可以通过select“属性检查器”在“故事板”中进行设置,在“更正”下可以select“默认”,“是”和“否” 在这里输入图像说明 在这里输入图像说明

 + (void)disableAutoCorrectionsForTextfieldsAndTextViewGlobally { static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ struct objc_method_description autocorrectionTypeMethodDescription = protocol_getMethodDescription(@protocol(UITextInputTraits), @selector(autocorrectionType), NO, YES); IMP noAutocorrectionTypeIMP_TEXT_FIELD = imp_implementationWithBlock(^(UITextField *_self) { return UITextAutocorrectionTypeNo; }); IMP noAutocorrectionTypeIMP_TEXT_VIEW = imp_implementationWithBlock(^(UITextView *_self) { return UITextAutocorrectionTypeNo; }); class_replaceMethod([UITextField class], @selector(autocorrectionType), noAutocorrectionTypeIMP_TEXT_FIELD, autocorrectionTypeMethodDescription.types); class_replaceMethod([UITextView class], @selector(autocorrectionType), noAutocorrectionTypeIMP_TEXT_VIEW, autocorrectionTypeMethodDescription.types); }); }