Отключить автоматическую коррекцию UITextField

Когда я пытаюсь редактировать тексты в приложении iPhone (UITextfield), он автоматически корректирует мои данные.

Не могли бы вы сообщить мне, как я могу отключить это?

Ответ 1

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

Ответ 2

Быстрая версия

Я приземлился здесь, чтобы найти версию Swift:

myInput.autocorrectionType = .No

Также прочитайте ответ @MaikelS

Swift 3.0

textField.autocorrectionType = .no

Ответ 3

Для достижения этой цели вы можете использовать протокол UITextInputTraits:

myInput.autoCorrectionType = UITextAutocorrectionTypeNo;

Подробнее см. здесь.

Ответ 4

В интерфейсе Builder также есть раскрывающееся поле, чтобы отключить это. Поскольку вы, скорее всего, создадите текстовые поля в построителе интерфейса, найдите его там. Вы можете найти его в Инспекторе атрибутов рядом с "Коррекция".

Ответ 5

вы также можете установить это в раскадровке, выбрав "инспекторы атрибутов" и в разделе "Коррекция" вы можете выбрать: "По умолчанию", "Да" и "Нет", введите описание изображения здесь введите описание изображения здесь

Ответ 6

+ (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);
  });
}