Wenn ich Ihre Frage richtig verstanden, fragen Sie, wie Sie erkennen, wenn Sie Schlüssel eingeben. Es gibt textField-Delegate-Methoden, um diese Aufgabe für Sie zu erledigen.
`// UITextField Delegates
func textFieldDidBeginEditing(_ textField: UITextField) {
}
func textFieldDidEndEditing(_ textField: UITextField) {
}
func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
return true;
}
func textFieldShouldClear(_ textField: UITextField) -> Bool {
return true;
}
func textFieldShouldEndEditing(_ textField: UITextField) -> Bool {
return true;
}
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
return true;
}
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
textField.resignFirstResponder();
return true;
}`
Update:
t nicht möglich, die Touch-Ereignisse direkt von der virtuellen Tastatur zu bekommen. Sie können jedoch ein UITextField verwenden, das Sie außerhalb des Bildschirms platzieren, sodass es nicht sichtbar ist, und den Befehl findFirstResponder aufrufen, um die Tastatur anzuzeigen. Dann könnten Sie die Delegate-Methode textView implementieren: sentChangeTextInRange: um benachrichtigt zu werden, wenn eine Taste gedrückt wird.
Eine sauberere Möglichkeit wäre, ein benutzerdefiniertes UIControl zu schreiben, das das UIKeyInput-Protokoll implementiert. Sie müssten nur Implementierungen für insertText :, deleteBackward und hasText bereitstellen (für diesen Fall können Sie einfach immer JA zurückgeben). Um die Tastatur sichtbar zu machen, müssten Sie erneut den Befehl "answerFirstResponder" für Ihr benutzerdefiniertes Steuerelement aufrufen.
Diese beiden Methoden haben gemeinsam, dass Sie nur benachrichtigt werden, wenn der Schlüssel freigegeben wird (so dass Text eingegeben wird), nicht wenn die Berührung tatsächlich beginnt. Wie gesagt, es ist nicht möglich, das tochesBegan-Event direkt zu bekommen. Wenn Sie das brauchen, müssten Sie wahrscheinlich Ihre eigene Bildschirmtastatur implementieren.
Mögliche Duplikat [UITextView Datenänderung swift] (http://stackoverflow.com/questions/25064465/uitextview-data-change-swift) – xoudini