UITextField Funktionalität ohne Tastatur
Ich bin mit dem erstellen einer Anwendung mit einer benutzerdefinierten Oberfläche für die Eingabe von text, und wurde mit einem UILabel angezeigt. Es wurde dann muss der Benutzer in der Lage sein, zu kopieren und fügen Sie den text, und so ging ich mit ein UITextField.
Das problem, das ich habe ist, dass ich kann nicht herausfinden, wie man das UITextField zur Auswahl, kopieren, einfügen, etc, haben aber keine Tastatur angezeigt, wenn das Feld ausgewählt ist.
Habe ich gelesen, zahlreiche Beiträge ähnlich wie diese, aber keiner Fragen, genau die gleiche Sache, auch keine der Lösungen funktioniert bei mir. Ich habe versucht, das Feld nicht bearbeitbar, das blockiert die Tastatur kommt hoch, aber auch nicht erlaubt das kopieren und einfügen. Ich habe auch die Kommentare Lesen, die darauf hindeutet Unterklassen der UITextField -, aber keiner, den ich gelesen habe, haben konkrete Beispiele.
Kann, was ich will, geschieht einfach, oder muss ich gehen den Weg von der Erstellung einer benutzerdefinierten Ansicht für die Tastatur, oder andere Möglichkeiten?
Dank,
Andrew
Lösung:
Am Ende, entdeckte ich ein anderes, ähnlich (aber nicht genau) Frage hier auf stackoverflow, und eine Antwort gab eine Lösung für mein problem. Die Art und Weise, darüber zu gehen, es ist einfach, die app Anzeige eines dummy-Ansicht die Tastatur, und alles andere funktioniert so wie es soll.
UIView *dummyView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 1, 1)];
VIN.inputView = dummyView; //Hide keyboard, but show blinking cursor
Funktioniert es für die UITextField und UITextView und Sie müssen festgelegt werden, um bearbeitet werden.
InformationsquelleAutor der Frage Andrew Hoyer | 2012-01-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Lösung:
Am Ende, entdeckte ich ein anderes, ähnlich (aber nicht genau) Frage hier auf stackoverflow, und eine Antwort gab eine Lösung für mein problem. Die Art und Weise, darüber zu gehen, es ist einfach, die app Anzeige eines dummy-Ansicht die Tastatur, und alles andere funktioniert so wie es soll.
Funktioniert es für
UITextField
undUITextView
und Sie müssen festgelegt werden, um bearbeitet werden.InformationsquelleAutor der Antwort Andrew Hoyer
Des Autors-code...
(Wo 'VIN' ist die UITextField-variable, und dieser code befindet sich in irgendwo wie viewDidLoad)
...funktioniert zu verhindern, dass das iPhone/iPad popup-Tastatur angezeigt werden.
ALLERDINGS, das ist nur die 'display' - Teil-Tastatur-Schnittstelle. Wenn Sie eine externe Tastatur angeschlossen wie apples körperliche iPhone/iPad-Tastatur, die Stecker in den 30-pin-oder eine zillion Bluetooth-fähigen Tastaturen (oder sogar mit Mac-Tastatur mit simulator), der Benutzer kann immer noch geben Sie in das Feld, OHNE die display-Tastatur popup zu zeigen.
Auch, sogar ohne Tastatur popup angezeigt, die der Benutzer noch in der Lage sein, um Sie EINFÜGEN aus dem einfügen-board in das Feld durch doppelklicken berühren Sie das Feld und wählen EINFÜGEN.
Folgenden ZUSÄTZLICHEN code verhindert, dass die Tastatur benutzt wird und verhindert, dass die PASTE so gut:
...und noch eine Auswahl ermöglicht, aber nicht Bearbeiten Sie den text im Feld.
InformationsquelleAutor der Antwort yagrax
Machen es zu einem UITextView, und stellen Sie die UITextView nicht bearbeitet werden. Das wird immer noch erlauben Sie zu kopieren.
EDIT: Ja, mein schlechtes, ich vergaß, dass ein Teil... im Grunde das, was Sie Taten, war eine scrollbare label.
Wenn Sie möchten, alle Funktionen, ohne die Tastatur, die Sie brauchen, um es zu Bearbeiten, und Bearbeiten UITextFieldDelegate ist
-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField
zureturn NO
. Dieser block wird die Tastatur von der Tür.InformationsquelleAutor der Antwort DGund
Ich bin mit
[textfield resignFirstResponder]
im delegate-Methode -(void)textFieldDidBeginEditing:(UITextField *)textField
wie diese:Also Tastatur gerade keine Zeit haben, angezeigt
InformationsquelleAutor der Antwort Asike