it-swarm.com.de

Deaktivieren Sie die iOS 8-Quicktype-Tastatur in UITextView programmgesteuert

Ich versuche, eine App für iOS8 zu aktualisieren, die über eine Chat-Benutzeroberfläche verfügt. Die neue Quicktype-Tastatur verbirgt jedoch die Textansicht. Daher möchte ich sie programmgesteuert oder im Interface-Builder deaktivieren. 

Ist es irgendwie möglich oder nur der Benutzer kann es in den Geräteeinstellungen ausschalten? 

Ich weiß, dass es eine Frage/Antwort gibt, die dieses Problem mit einer UITextfield löst, aber ich muss es mit einer UITextView tun.

67
rihe

Sie können die Tastaturvorschläge/autocomplete/QuickType für eine UITextView deaktivieren, die den Text auf kleineren Bildschirmen wie 4S blockieren kann, wie in diesem Beispiel gezeigt

mit der folgenden Zeile:

myTextView.autocorrectionType = UITextAutocorrectionTypeNo;

enter image description hereenter image description here

Und wenn Sie dies nur auf einem bestimmten Bildschirm tun möchten, z. B. als Ziel für die 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
    }
}
122
mihai

Der Vollständigkeit halber möchte ich noch hinzufügen, dass Sie dies auch im Interface Builder tun können.

So deaktivieren Sie die Tastaturvorschläge für UITextField oder UITextView - setzen Sie im Attributes InspectorCorrection auf No.

enter image description here

51

Ich habe eine UITextView-Kategorieklasse mit der folgenden Methode erstellt:

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

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

Ich wünschte, es gäbe einen saubereren Ansatz. Es wird auch davon ausgegangen, dass der Autokorrekturmodus Default war, was möglicherweise nicht immer für jede Textansicht gilt.

7
DZenBot

In Swift 2:

myUITextField.autocorrectionType = UITextAutocorrectionType.No
2
Rao

In Swift 4.x:

myUTTextField.autocorrectionType = .no
0
Yogesh Bharate