iPhone - möglich, keine Tastatur, aber immer noch zeigen Sie den cursor in ein UITextField?
Habe ich eine benutzerdefinierte Tastatur, die ich zeigen möchte, wenn der Benutzer tippt ein UITextField. Aber gleichzeitig möchte ich zeigen, den cursor im Textfeld. Wenn eine Rückkehr NICHT für canBecomeFirstResponder, es nicht in die Standard-Tastatur, aber nicht zeigen, den cursor entweder.
Kann jemand bitte mir helfen?
Dank.
- Wie wird ein cursor in ein UITextField nützlich, wenn es keine Tastatur? Nicht zu viel, das ist wahrscheinlich, warum es ist nicht eine unterstützte Funktion.
- Haben Sie eine benutzerdefinierte Tastatur. das ist, warum ich nicht wollen, die Standard-Tastatur zu zeigen, bis, aber immer noch wollen, dass der cursor, so dass der Benutzer weiß, wo er ist text-Eingabe
- Es ist definitiv eine Verwendung für diese. Sherry, hast du eine Antwort?
- Überprüfen Sie, ob dieser post hat keine nützlichen Informationen für Sie.. iphonedevsdk.com/forum/iphone-sdk-development/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Antwort auf Ihr problem ist, erstellen Sie eine Ansicht für die benutzerdefinierte Tastatur und Bearbeiten Sie dann die
inputView
Eigentum Ihrer UITextField und übergeben Sie die Ansicht für die benutzerdefinierte Tastatur.Ich hoffe, das hilft.
Scheint, wie das, was Sie wollen, ist ein UITextField mit einem benutzerdefinierten Tastatur. Erstellen Sie die Klasse
CustomKeyboard : UIView
und Schaltflächen hinzufügen/layout-Ansicht. Dann für Ihre textfield einfach den inputView-Eigenschaft auf eine Instanz der Klasse CustomKeyboardtextField.inputView = customKeyboard;
. Sie müssen die inputView Eigenschaft readwrite sowie@property (readwrite, retain) UIView *inputView;
Durch die Einstellung der inputView Eigenschaft, die standard-iPhone-Tastaturen wird nicht angezeigt, wenn das textfield wird first-responder.überschreiben folgenden zwei Methoden in UITextFieldDelegate. Beachten Sie, dass dieser Ansatz gilt für beide UITextField und UITextView (in dem Fall überschreiben die entsprechenden Methoden in UITextViewDelegate)
Registrieren Sie sich als Tastatur Benachrichtigung Beobachter (z.B. in der view-controller, wo Sie wollen, um die Tastatur auszublenden):-
Setzen in der hideKeyboard: Funktion:-
(Dank luvieere in diese post für zeigen mir, wie man die Tastatur)
Ich bin nicht sicher, der Punkt, aber warum nicht einfach ein UILabel mit dem gleichen Inhalt des Textfeldes und dekoriert, um zu schauen, wie Sie Ihre text-Feld mit einem cursor ist es. Tauschen Sie es aus für ein UITextField-wenn Sie wollen-Eingang.
Gibt es 2 Lösungen für das problem.
1) die Einstellung der alpha von der Tastatur auf 0 wird die Tastatur unsichtbar... das kann alles sein, was Sie wollen. Der cursor erscheint.
2) UITextField implementiert die UITextInputTraits Protokoll. Es wird immer anrufen, die Tastatur wird es, wenn man die first responder. Sie müssen die Erben entweder Sie oder die andere Klasse zu ändern, die default-Verhalten.
Glück.
Wenn Sie uns sagen, was Ihr versucht zu erreichen, die wir vielleicht sein könnten, deuten auf eine elegantere Art und Weise zu vollbringen es.
Spaß haben.
Sehe ich zwei Lösungen - entweder eine eigene animation erstellen (und stoppen oder starten, je nachdem die first responder-status das Feld "text"), oder spielen Sie mit inputView Eigenschaft.
Hier ist eine Lösung für inputView Ansatz:
Set
inputView
Eigenschaft desUITextField
zu leeren Blick und bitten Sie Sie, zu first responder. Dies wird effektiv ausblenden StandardinputView
(z.B. Tastatur), aber er wird weiterhin zeigen, cursor blinkt.Hinzufügen Tippen Sie auf gestik-Erkennung, und, wenn der Benutzer tippt UITextField, legen Sie die inputView Eigenschaft zum benutzerdefinierten Tastatur schließen Sie die Tastatur, und Fragen Sie die UITextField zu werden first responder wieder.
Warum tun Sie müssen sogar den cursor ?
Ich denke, alles, was Sie tun müssen, ist, Wann immer ein Benutzer eine Taste auf Ihrer eigenen Tastatur, können Sie aktualisieren den text-Wert der Eingabe.