- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的应用程序中有一个用户名文本字段,我想将其限制为 24 个字符并且不允许使用“|”用户名中的管道。
我可以使用下面的代码单独执行这些操作,但是我无法将它们组合到 textField(_:shouldChangeCharactersInRange:replacementString:) 中。
此代码成功禁止“|”在用户名字段中。
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
if textField === usernameField {
// Create an `NSCharacterSet` set
let set = NSCharacterSet(charactersInString:"|")
// At every character in this "set" contained in the string,
// split the string up into components which exclude the characters
// in this inverse set
let components = string.componentsSeparatedByCharactersInSet(set)
// Rejoin these components
let filtered = components.joinWithSeparator("")
// If the original string is equal to the filtered string, i.e. if no
// characters were present to be eliminated, the input is valid
// and the statement returns true; else it returns false
return string == filtered
} else {
return true
}
}
此代码成功地将用户名字段限制为 24 个字符。
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
// Added to limit title to <= 40 characters
guard let text = meetupTitleTextField.text else { return true }
let newLength = text.utf16.count + string.utf16.count - range.length
return newLength <= 48 // Bool
}
如果有任何关于如何将它们组合到 textField(_:shouldChangeCharactersInRange:replacementString:) 中的建议,我将不胜感激
最佳答案
试试这个:
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
if textField == usernameField, let text = textField.text {
let newLength = text.characters.count + string.characters.count - range.length
return newLength <= 48 && !string.containsString("|")
}
return true
}
关于ios - 限制文本字段中的字符和字符长度(_ :shouldChangeCharactersInRange:replacementString:),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37366639/
我的应用程序中有一个用户名文本字段,我想将其限制为 24 个字符并且不允许使用“|”用户名中的管道。 我可以使用下面的代码单独执行这些操作,但是我无法将它们组合到 textField(_:should
我已经将 UITextField 子类化,我想在子类中使用类似于 textField:shouldChangeCharactersInRange:replacementString: 的方法,以便在键
UITextFieldDelegate Protocol Reference说 “询问代表是否应该更改指定的文本。”关于 textField:shouldChangeCharactersInRange
我试图阻止将中文(或所有非 ascii 字符)输入到 UITextField 中。正如在其他帖子中看到的那样,我实现了 textField:shouldChangeCharactersInRange:
我刚问了a question关于如何监视对 UITextField 的更改并收到此响应: - (BOOL)textField:(UITextField *)textField shouldChange
我正在为 ipad 创建自定义键盘,当我按下键盘按钮并编辑文本字段时 textField(_:shouldChangeCharactersInRange:replacementString:) 不会被
我的一个项目中有一个相当复杂的 NSTextView 子类。我目前正在努力让查找/替换与内联查找栏(例如 Safari、Xcode)一起工作,并希望正确支持替换操作的撤消/重做。 我希望“全部替换”命
我是一名优秀的程序员,十分优秀!