Entfernen Sie den Cursor, und deaktivieren Sie Kopieren / Einfügen für UITextField

Dieses Lernprogramm ist für X-Code aktualisiert 8.1 & schnell 3.0

Wenn Sie Datumsauswahl oder Picker Ansicht auf Textfeld hinzufügen, dann sehen Sie noch Cursor blinkt. Das sieht nicht gut aus überhaupt. Auch können Sie auch kopieren, andere Inhalte in diesem Textfeld einfügen. Dies kann ein Fehler für die App erstellen, wenn Sie falsche Informationen einfügen.

  1. Zunächst lässt sich die x-Code-Projekt wie gewohnt eingestellt. Erstellen Sie neue einheitliche Sicht Anwendung X-Code-Projekt. Stellen Sie Projektnamen zu picker ohne Cursor & speichern Sie sie auf dem Desktop.

neue x-Code-Projekt

2. Zum Hauptstoryboard und wählen Sie View-Controller. Stellen Sie seine Größe auf iPhone SEset-size-to-iphone-se

3. In Textfeld-Controller anzuzeigen & Set es ist Breite 150

hinzufügen Textfeld

4. In Cocoa Touch-Klassendatei der Unterklasse UITextField

UITextField Unterklasse

5. Achten Sie darauf, die Datei in der richtigen zu speichern Gruppe

Speichern Unterklasse

6. Offene TextField- rasche Datei & Veränderung Import Cocoa bis zur Import UIKit

// 6
import UIKit

class TextField: UITextField {

}

7. Zum Hauptstoryboard, wählen Sie Textfeld & ändern ihre eigene Klasse zu Textfeld

Set benutzerdefinierte Klasse

8. Offene TextField- rasche Datei & fügen Sie den Code

class TextField: UITextField {
    // 8
    override func caretRect(for position: UITextPosition) -> CGRect {
        return CGRect.zero
    }
    
    override func selectionRects(for range: UITextRange) -> [Any] {
        return []
    }
    
    override func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool {
        
        if action == #selector(copy(_:)) || action == #selector(selectAll(_:)) || action == #selector(paste(_:)) {
            
            return false
        }
        
        return super.canPerformAction(action, withSender: sender)
    }
}

Der obige Code entfernen Cursor & Deaktivieren Kopieren / Einfügen von UITextField

9. Zum Hauptstoryboard & Textfeld als Steckdose anschließen Controller rasche Datei anzuzeigen

Textfeld als Auslass

10. Schließen Sie Textfeld als Aktion zu schnellen Datei & stellen Sie sicher, gesetzt "Event" bis zur "Bearbeiten von Did beginnen"

Textfeld als Aktion

11. Dann fügen Sie innerhalb Textfeld Aktion folgenden Code.

    @IBAction func textFieldEditing(_ sender: TextField) {
        // 11
        let datePicker = UIDatePicker()
        
        datePicker.datePickerMode = UIDatePickerMode.date
        
        sender.inputView = datePicker
        
        datePicker.addTarget(self, action: #selector(ViewController.datePickerValueChanged), for: UIControlEvents.valueChanged)
        
    }

Um mehr zu erfahren, wie Datumsauswahl als Textfeld hinzufügen finden Sie im Tutorium.

12. Fügen Sie unter obigen Code folgenden Code

    // 12
    func datePickerValueChanged(_ sender: UIDatePicker) {
        
        let dateformatter = DateFormatter()
        
        dateformatter.dateStyle = DateFormatter.Style.medium
        
        dateformatter.timeStyle = DateFormatter.Style.none
        
        dateTextField.text = dateformatter.string(from: sender.date)
        
    }

13. Fügen Sie folgenden Code in Textfeld eingeben zu stoppen

    // 13
    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        
        self.view.endEditing(true)
    }


Um mehr zu erfahren, wie Textfeld zu schließen siehe mein Tutorial hier.

14. Erstellen und ausführen App in iPhone 5s. Tippen Sie auf das Textfeld und fügen Sie Datum an das Textfeld ein.

final picker Textfeld
Download von X-Code-Projekt
Herausforderung: entfernen Sie den Cursor & Deaktivieren Kopieren / Einfügen für Picker Ansicht Textfeld

final pickerTextFeld
Herunterladen Herausforderung Lösung
Uber Herausforderung: Erstellen Sie formatierte Währung in Textfeld zusammen mit dem Entfernen von Cursor & Deaktivieren Kopieren / Einfügen

letzte Währung Textfeld
Herunterladen Uber Lösung

Gesamt 1 Stimmen
0

Sagen Sie uns, wie kann ich dieses Tutorial verbessern?

+ = Stellen Sie sicher, Mensch oder Spambot ?