Я пытаюсь обновить приложение для iOS8, у которого есть интерфейс чата, но новая клавиатура Quicktype скрывает текстовое представление, поэтому я хотел бы отключить его программно или в интерфейсе.
Возможно ли как-то или только пользователи могут отключить его в настройках устройства?
Я знаю, что есть вопрос/ответ, который решает эту проблему с UITextfield
, но мне нужно сделать это с помощью UITextView
.
Ответ 1
Вы можете отключить предложения клавиатуры/автозаполнение/QuickType для UITextView, которые могут блокировать текст на меньших экранах, таких как 4S, как показано в этом примере.
со следующей строкой:
myTextView.autocorrectionType = UITextAutocorrectionTypeNo;
![enter image description here]()
![enter 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