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