Meine UIView enthält zwei UITextField.Ich muss die Option copy, paste für ein Textfeld einschränken.Ich möchte das nicht auf ein anderes beschränken.
Wenn ich den folgenden Code benutze, wird das Feld von copy, paste eingeschränkt.
%Vor%Kann jemand mir die Lösung liefern, um mein Problem zu lösen.
Erstellen Sie eine Unterklasse von UITextField. Implementieren Sie in dieser Unterklasse
%Vor%Verwenden Sie dann diese Unterklasse für das Feld, in das Sie nicht kopieren möchten, und verwenden Sie ein reguläres UITextField für das Feld, aus dem Sie kopieren können.
Folgendes verhindert, dass eine Zeichenfolge, die länger als 1 Zeichen ist, eingefügt wird. String, der 1 Zeichen lang ist, wird jedoch durchkommen (könnte für einige Leute nützlich sein - braucht keine Subklassenbildung).
Gib deinem Text zuerst einen Delegierten
%Vor%Fügen Sie dann Ihrem ViewController die folgende Methode hinzu
%Vor%Erklärung von Apple:
Diese Standardimplementierung von diesem Methode gibt YES zurück, wenn der Responder Die Klasse implementiert die angeforderte Aktion und ruft den nächsten Responder, wenn es nicht. Unterklassen können dies überschreiben Methode, um Menübefehle basierend zu aktivieren über den aktuellen Zustand; zum Beispiel, du würde den Kopierbefehl aktivieren, wenn dort ist eine Auswahl oder deaktiviert das Einfügen Befehl, wenn die Pasteboard nicht Daten mit dem richtigen Inhalt enthalten Pasteboard-Darstellungstyp.
Also besteht die Lösung darin, die UITextView abzuleiten und korrekt zurückzugeben.
Ich hatte eine zufällige Idee, die in einer Textansicht perfekt funktionierte. Kein Grund, warum es in einem Textfeld nicht funktionieren würde.
Ich habe dem Textfeld, das ich einschränken wollte, Folgendes hinzugefügt:
Dann wurde ihm der folgende Code zugewiesen.
%Vor%Ich kann jetzt noch durch die Textansicht scrollen, aber ein langer Tastendruck oder Doppeltippen macht jetzt gar nichts!
Tags und Links objective-c iphone copy-paste uitextfield