禁用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); }); }