ich eine Textview, die für Leerraum testet die Teilnehmer unter Verwendung vonSwift IOS -Wie nur Rückkehr zu testen „ n“ Schlüsselzeichen in einem Textview eingegeben werden
fileprivate let whitespace = CharacterSet.whitespaces
func textViewDidChange(_ textView: UITextView) {
if textView.text!.trimmingCharacters(in: whitespace) == ""{
sendButton.isEnabled = false
}else{
sendButton.isEnabled = true
}
}
func textViewDidEndEditing(_ textView: UITextView) {
if textView.text!.trimmingCharacters(in: whitespace) == ""{
sendButton.isEnabled = false
sendButton.layer.backgroundColor = UIColor.lightGray.cgColor
}else{
sendButton.isEnabled = true
sendButton.layer.backgroundColor = UIColor.red.cgColor
}
}
Wenn der Benutzer alle Räume gelangt die dem sendButton wird niemals aktiviert. Wenn der Benutzer jedoch 1 oder mehr Returnschlüsselzeichen "\ n" eingibt, wird er immer noch als Zeichen erkannt und der sendButton wird aktiviert.
In den Textview Delegierten shouldChangeTextInRange
, textViewDidChange
und textViewDidEndEditing
ich versuchte, indem textView.text! == "\n"
:
fileprivate let whitespace = CharacterSet.whitespaces
func textViewDidChange(_ textView: UITextView) {
if textView.text!.trimmingCharacters(in: whitespace) == "" || textView.text! == "\n"{
sendButton.isEnabled = false
}else{
sendButton.isEnabled = true
} }
func textViewDidEndEditing(_ textView: UITextView) {
if textView.text!.trimmingCharacters(in: whitespace) == "" || textView.text! == "\n"{
sendButton.isEnabled = false
}else{
sendButton.isEnabled = true
}
}
func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
if textView.text!.trimmingCharacters(in: whitespace) == "" || textView.text! == "\n"{
sendButton.isEnabled = false
}else{
sendButton.isEnabled = true
}
return true
}
Die Taste wird nach wie vor aktiviert.
Wie bekomme ich die gleiche Antwort wie nur für Whitespace?
ändern 'Characterset.whitesspaces' zu' .whitespacesAndNewlines'. – rmaddy
@rmaddy danke, ich versuche es gerade –
@rmaddy Ich versuchte, wenn textView.text! .trimmingCharacters (in: Characterset.whitespacesUndNewLines) == "" in der Delegierten sentChangeTextInRange und textViewDidChnage, aber es wird weiterhin aktiviert –