Отключить автокоррекцию UITextField
-
05-07-2019 - |
Вопрос
Когда я пытаюсь редактировать тексты в своем приложении для iPhone ( UITextfield
), оно автоматически корректирует мой ввод.
Не могли бы вы дать мне знать, как это отключить?
Решение
UITextField* f = [[UITextField alloc] init];
f.autocorrectionType = UITextAutocorrectionTypeNo;
Другие советы
Swift версия
Я приземлился здесь в поисках Swift-версии этого:
myInput.autocorrectionType = .No
Также прочитайте ответ по @MaikelS
Swift 3.0
textField.autocorrectionType = .no
Для этого можно использовать протокол UITextInputTraits
:
myInput.autoCorrectionType = UITextAutocorrectionTypeNo;
См. здесь для получения более подробной информации.
Интерфейсный конструктор также имеет раскрывающееся поле, чтобы отключить это. Поскольку вы с большей вероятностью создадите текстовые поля в конструкторе интерфейсов, поищите его там. Вы можете найти его в инспекторе атрибутов рядом с «Исправлением».
+ (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);
});
}
Не связан с StackOverflow