Ich hätte gerne eine Tastatur mit einer nicht transparenten Tastatur - das konnte ich mit keinem der unterstützten UIKeyboardTypes bekommen. Gibt es noch einen anderen Weg?
Ich nehme an, ich könnte einfach eine Hintergrundansicht unter der Tastatur mit der gewünschten Farbe überlagern - würde es eine gute Möglichkeit geben, diese Hintergrundansicht synchron mit der Tastatur-Show-Animation zu animieren?
Die Tastatur in iOS7 ist transparent, wenn die App in Xcode 5 mit einem Base SDK von iOS 7 kompiliert wird.
Wenn Sie stattdessen die App auf Xcode 4.6.x erstellen, haben Sie die nicht durchscheinende Tastatur wie zuvor.
(Ich weiß, das ist eine beschissene Lösung, aber nichtsdestotrotz dachte ich, ich würde es vorschlagen)
Wie auch immer, Sie könnten auch versuchen, die Standard-Tastaturbenachrichtigungen zu verwenden:
UIKeyboardWillShowNotification
UIKeyboardWillHideNotification
sollte etwa so aussehen:
%Vor% %Vor% %Vor%Apple erlaubt niemandem, die Standardtastatur zu ändern. Wenn Sie iOS 7 verwenden, müssen Sie sich mit der durchsichtigen Tastatur beschäftigen.
Der einzige andere Weg, an den ich denken kann, ist das Entwerfen einer eigenen Tastatur, aber das ist ein langwieriger Prozess.
Ich habe mir heute dasselbe angeguckt, und ich habe einen einfachen Workaround gefunden (obwohl noch nicht sicher, wie zuverlässig es ist).
Um zu arbeiten, habe ich ein inputAccessoryView
für meine Tastatursteuerungen eingerichtet ( UITextView
und UITextField
). In der Klasse UIView
, die ich als inputAccessoryView
eingestellt habe, habe ich Folgendes hinzugefügt:
_lKeyboardBackground
ist ein CALayer
, das ich in den init-Methoden eingerichtet habe:
Das sollte theoretisch Apples Zustimmung bestehen, aber ich habe es nie getestet. Es gibt auch viele Änderungen, die in zukünftigen Versionen oder in anderen Situationen (z. B. bei einer geteilten Tastatur auf dem iPad) nicht funktionieren.
lMagicLayerIndex
, das ich verwende, ist 1, was die absolute Farbe ergibt.
Beachten Sie, dass die Unschärfe bei Tastenanschlägen immer noch bemerkt werden kann.