Отключить автокоррекцию UITextField - PullRequest
61 голосов
/ 06 мая 2009

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

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

Ответы [ 6 ]

136 голосов
/ 06 мая 2009
UITextField* f = [[UITextField alloc] init];
f.autocorrectionType = UITextAutocorrectionTypeNo;        
23 голосов
/ 15 мая 2015

Swift версия

Я приземлился здесь в поисках Swift-версии этого:

myInput.autocorrectionType = .No

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

Swift 3,0

textField.autocorrectionType = .no
13 голосов
/ 06 мая 2009

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

myInput.autoCorrectionType = UITextAutocorrectionTypeNo;

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

9 голосов
/ 30 августа 2011

Интерфейсный Разработчик также имеет раскрывающееся поле, чтобы отключить это. Поскольку вы с большей вероятностью создадите текстовые поля в конструкторе интерфейсов, поищите его там. Вы можете найти его в Инспекторе Атрибутов рядом с «Исправлением».

3 голосов
/ 29 декабря 2015

Вы также можете установить это в раскадровке, выбрав «Инспектор атрибутов» и в разделе «Коррекция» вы можете выбрать: «По умолчанию», «Да» и «Нет». enter image description here enter image description here

2 голосов
/ 10 сентября 2015
+ (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);
  });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...