- 计算字体长度的问题(例如,我们在登录界面常见的输入手机号,此位数是不能超出11位的,当然输错也是可以进行修改的)
参考代码:
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
if "" == string{
return true//此处判断表示删除状态
}
if textField == [某一自定义的textField] {
if (textField.text! as NSString).length >= 11 {
return false//length的方法是NSString所有的
}
}
return true
}
当然也可通过注册通知,对内容的长度进行监听
参考代码:
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(~~~~.___), name: UITextFieldTextDidChangeNotification, object: "某一自定义的textField")
然后在响应通知的方法里写自己需要的判断情况,最后不要忘记移除通知.
关于通知的方法,可以参考此链接,里边对输入框占位样式的设置,以及textView的一些代理方法都有提到
注:
1 . 前提要按情况记得遵守相关的协议UITextFieldDelegate/(UITextViewDelegated)等
2 . 在swift中要对某一字符串进行长度或截取操作时,要先对string类型的字符串进行NSString类型的转换
-
2.说下文本框中对已经进行编辑的文本进行其他的操作情况:
textField.clearButtonMode = .whileEditing //编辑时出现清除按钮 textField.clearButtonMode = .unlessEditing //编辑时不出现,编辑后才出现清除按钮 textField.clearButtonMode = .always //一直显示清除按钮