如何强制在iPhone上的文本框中输入字符为大写?
我试图在处理新的文本条目后,通过按键击键,将NSAttributedString样式应用于UITextField.问题是,每当我替换文本时,光标将在每次更改时跳到最后.这是我目前的做法......
立即接收并显示文本更改(当我返回false时同样的问题适用并手动执行文本替换)
func textField(textField: UITextField!, shouldChangeCharactersInRange range: NSRange, replacementString string: String!) -> Bool {
let range:NSRange = NSRange(location: range.location, length: range.length)
let newString = (textField.text as NSString).stringByReplacingCharactersInRange(range, withString: string);
return true
}
Run Code Online (Sandbox Code Playgroud)
我订阅了UITextFieldTextDidChangeNotification通知.这会触发样式.当文本被更改时,我使用一些format()函数将其替换为格式化版本(NSAttributedString)(NSString).
func textFieldTextDidChangeNotification(userInfo:NSDictionary) {
var attributedString:NSMutableAttributedString = NSMutableAttributedString(string: fullString)
attributedString = format(textField.text) as NSMutableAttributedString
textField.attributedText = attributedString
}
Run Code Online (Sandbox Code Playgroud)
造型效果很好.但是,在每次文本替换后,光标会跳转到字符串的末尾.如何关闭此行为或手动将光标移回到开始编辑的位置?...或者在编辑时是否有更好的解决方案来设置文本样式?
我想覆盖按下键的事件来强制它,即使按下大写键,结果输出仍然是小写的.