Автоматически отключать iOS8 Quicktype Keyboard на UITextView

Я пытаюсь обновить приложение для iOS8, у которого есть интерфейс чата, но новая клавиатура Quicktype скрывает текстовое представление, поэтому я хотел бы отключить его программно или в интерфейсе.

Возможно ли как-то или только пользователи могут отключить его в настройках устройства?

Я знаю, что есть вопрос/ответ, который решает эту проблему с UITextfield, но мне нужно сделать это с помощью UITextView.

Ответ 1

Вы можете отключить предложения клавиатуры/автозаполнение/QuickType для UITextView, которые могут блокировать текст на меньших экранах, таких как 4S, как показано в этом примере.

со следующей строкой:

myTextView.autocorrectionType = UITextAutocorrectionTypeNo;

enter image description hereenter image description here

И если вы хотите сделать это только на определенном экране, например, ориентироваться на 4S

if([[UIDevice currentDevice]userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
    CGFloat screenHeight = [UIScreen mainScreen].bounds.size.height;
    if (screenHeight == 568) {
        // iphone 5 screen
    }
    else if (screenHeight < 568) {
       // smaller than iphone 5 screen thus 4s
    }
}

Ответ 2

Для полноты я хотел бы добавить, что вы также можете сделать это в Interface Builder.

Чтобы отключить предложения клавиатуры на UITextField или UITextView - в Attributes Inspector установите Correction в No.

enter image description here

Ответ 3

Я создал класс категории UITextView со следующим методом:

- (void)disableQuickTypeBar:(BOOL)disable
{
    self.autocorrectionType = disable ? UITextAutocorrectionTypeNo : UITextAutocorrectionTypeDefault;

    if (self.isFirstResponder) {
        [self resignFirstResponder];
        [self becomeFirstResponder];
    }
}

Я хочу, чтобы был более чистый подход. Кроме того, он предполагает, что режим автоматической коррекции был Default, что может быть не всегда верно для каждого текстового вида.

Ответ 4

В Swift 2:

myUITextField.autocorrectionType = UITextAutocorrectionType.No