8 Stimmen

Kann ich ein UIKeyboard einfärben (schwarz)? Wenn ja, wie?

Gibt es eine Möglichkeit, eine schwarze Tastatur zu bekommen? Die Standardtastatur ist bläulich. Und die Alert-Tastatur ist halbtransparent schwarz. Ich habe mich gefragt, ob es möglich ist, die Tastatur schwarz zu machen, z. B. nicht transparent. Oder muss ich eine schwarze Ansicht hinter der Tastatur aufziehen, um den Transparenzeffekt zu verringern?

13voto

user160917 Punkte 8895

Die kurze Antwort lautet: Nein. Die einzigen beiden Tastaturen, die Sie anzeigen können, sind die normale und die Alarm-Tastatur.

Es gibt Möglichkeiten, die Benutzeroberfläche zu hacken, die Tastatur zu übernehmen und ihre Zusammensetzung zu ändern. Ich würde nicht empfehlen, dies zu tun, wie es 1) wahrscheinlich machen haben Ihre App aus dem App Store abgelehnt und 2) wahrscheinlich brechen das nächste Mal eine iOS Revision kommt herum.

Es scheint, dass eine schwarze oder weiße Ansicht hinter der Tastatur für die Anwendung funktionieren sollte. In diesem Fall würde ich empfehlen, schauen aquí für eine Möglichkeit, die schwarze Ansicht unterhalb der Tastatur zu animieren.

4voto

Tomasz Punkte 3476

Wie Ben oben erwähnt, können Sie nur einen dieser beiden Werte verwenden:

[textView setKeyboardAppearance:UIKeyboardAppearanceAlert];
[textView setKeyboardAppearance:UIKeyboardAppearanceDefault];

4voto

jadengeller Punkte 1287

Hier ist der Code zum Entfernen der UIKeyboard Hintergrund, indem er ihn ausblendet. Ändern Sie es, um den Hintergrund zu färben. UIKeyboard :

-(NSArray*)subviewsOfView:(UIView*)view withType:(NSString*)type{
NSString *prefix = [NSString stringWithFormat:@"<%@",type];
NSMutableArray *subviewArray = [NSMutableArray array];
for (UIView *subview in view.subviews) {
    NSArray *tempArray = [self subviewsOfView:subview withType:type];
    for (UIView *view in tempArray) {
        [subviewArray addObject:view];
    }
}
if ([[view description]hasPrefix:prefix]) {
    [subviewArray addObject:view];
}
return [NSArray arrayWithArray:subviewArray];
}

-(void)removeKeyboardBackground{
    for (UIWindow *keyboardWindow in [[UIApplication sharedApplication] windows]) {
        for (UIView *keyboard in [keyboardWindow subviews]) {
            for (UIView *view in [self subviewsOfView:keyboard withType:@"UIKBBackgroundView"]) {
                view.hidden=YES;
            }
        }
    }
}

Einfach anrufen [self removeKeyboardBackground] nachdem Sie eine NSNotification pour UIKeyboardDidShowNotification . Sie können mit der Hintergrundansicht machen, was Sie wollen, indem Sie die view.hidden=YES; mit dem, was Sie möchten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X