让我用一个例子解释我的问题
我有一个UITextField,想要限制它的文本,并且还有一个UILabel,告诉用户可以输入多少个字符。 因此,当我开始输入时,一切都运行良好,我正在使用此委托功能:
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {}
但是当我分配这样的文字时:textField.text = "Hello"
,
不调用上述方法,因此不改变计数器标签值,
我也尝试过:textField?.addTarget(self, action: #selector(txtFieldChanged), for: .allEditingEvents)
但没有运气
答案 0 :(得分:1)
根据您的问题,当您将文本分配给文本字段(如“hello”)时,您必须在视图中计算文本字段长度,然后在此处设置计数器。当您开始输入您的文本字段时,您的代表将被调用。
double left = 500 - textView.text.length ;
lblcounter.text = [NSString stringWithFormat:@"%.0f character left",left];