Отключить автозамену глобально в приложении - PullRequest
1 голос
/ 12 марта 2012

Я хотел бы отключить автозамену ввода текста в приложении iPad, независимо от того, какие глобальные настройки автозамены находятся на устройстве. Есть ли хороший способ сделать это через API, или мне просто нужно пройти через все приложение, найти все поля ввода текста и отключить опцию для каждого поля отдельно?

Ответы [ 4 ]

3 голосов
/ 12 марта 2012

Извините, но вы должны пройти через все текстовые поля и отключить его

2 голосов
/ 24 мая 2014

Вы можете переопределить тип автокоррекции текстового поля по умолчанию с помощью немного метода swizzling . В вашем приложении делегат или где-то еще толковый:

#import <objc/runtime.h>

// Prevent this code from being called multiple times
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
    struct objc_method_description autocorrectionTypeMethodDescription = protocol_getMethodDescription(@protocol(UITextInputTraits), @selector(autocorrectionType), NO, YES);
    // (Re)implement `-[UITextField autocorrectionType]` to return `UITextAutocorrectionTypeNO`.
    IMP noAutocorrectionTypeIMP = imp_implementationWithBlock(^(UITextField *_self){ return UITextAutocorrectionTypeNo; });
    class_replaceMethod([UITextField class], @selector(autocorrectionType), noAutocorrectionTypeIMP, autocorrectionTypeMethodDescription.types);
});
1 голос
/ 12 марта 2012

Возможно, вы можете создать подкласс UITextField и установить для него нужные свойства.Вместо UITextField вы можете использовать эту подклассовую версию.

Это может быть полезно, если вы еще не начали реализацию своего приложения!

0 голосов
/ 04 февраля 2015

как предложено @cocoakomali, вы можете создать категорию из UITextField, чтобы отключить автозамену для всех UITextField в приложении по умолчанию

@implementation UITextField (DisableAutoCorrect)

- (instancetype)init {
  self = [super init];
  if (self) {
    [self setAutocorrectionType:UITextAutocorrectionTypeNo];
  }
  return self;
}

@end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...