一,注册通知
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(inputTextChange:) name:UITextFieldTextDidChangeNotification object:_inputTextField];
- (void)inputTextChange:(NSNotification *)obj
{
if (!self.maxLength || self.maxLength == 0) {
return;
}
UITextField *textField = (UITextField *)obj.object;
if (self.isChneck) {
NSCharacterSet *nameCharacters = [[NSCharacterSet
characterSetWithCharactersInString:@"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"] invertedSet];
if (textField.text.length < 1) {
return;
}
//取出最后一位
NSString *lastStr = [textField.text substringFromIndex:textField.text.length-1];
NSRange userNameRange = [lastStr rangeOfCharacterFromSet:nameCharacters];
//最后一位是特殊字符
if (userNameRange.location != NSNotFound) {
textField.text = [textField.text substringToIndex:(textField.text.length - 1)];
}
}
}
注意:self.isChneck为.h属性,可认为是外在开关,为YES时有效.
下面是ios键盘的一些设置,仅供参考.(以下转载"编程是一门艺术"见谅)[部分]
一、键盘风格
UIKit框架支持8种风格键盘。
- typedef
enum { -
UIKeyboardTypeDefault, // 默认键盘:支持所有字符 -
UIKeyboardTypeASCIICapab le, // 支持ASCII的默认键盘 -
UIKeyboardTypeNumbersAnd Punctuation, // 标准电话键盘,支持+*#等符号 -
UIKeyboardTypeURL, // URL键盘,有.com按钮;只支持URL字符 -
UIKeyboardTypeNumberPad, //数字键盘 -
UIKeyboardTypePhonePad, // 电话键盘 -
UIKeyboardTypeNamePhoneP ad, // 电话键盘,也支持输入人名字 -
UIKeyboardTypeEmailAddre ss, // 用于输入电子邮件地址的键盘 - }
UIKeyboardType;
用法用例:
textView.keyboardtype=
二、键盘外观
- typedef
enum { -
UIKeyboardAppearanceDefa ult, // 默认外观:浅灰色 -
UIKeyboardAppearanceAler t, //深灰/石墨色 - }
UIKeyboardAppearance;
用法用例:
textView.keyboardAppearance=UIKeyboardAppearanceDefa
三、回车键
- typedef
enum { -
UIReturnKeyDefault, //默认:灰色按钮,标有Return -
UIReturnKeyGo, //标有Go的蓝色按钮 -
UIReturnKeyGoogle, //标有Google的蓝色按钮,用于搜索 -
UIReturnKeyJoin, //标有Join的蓝色按钮 -
UIReturnKeyNext, //标有Next的蓝色按钮 -
UIReturnKeyRoute, //标有Route的蓝色按钮 -
UIReturnKeySearch, //标有Search的蓝色按钮 -
UIReturnKeySend, //标有Send的蓝色按钮 -
UIReturnKeyYahoo, //标有Yahoo!的蓝色按钮,用于搜索 -
UIReturnKeyDone, //标有Done的蓝色按钮 -
UIReturnKeyEmergencyCall , //紧急呼叫按钮 - }
UIReturnKeyType;
用法用例:
textView.returnKeyType=UIReturnKeyGo;
四、自动大写
- typedef
enum { -
UITextAutocapitalization TypeNone, //不自动大写 -
UITextAutocapitalization TypeWords, //单词首字母大写 -
UITextAutocapitalization TypeSentences, //句子首字母大写 -
UITextAutocapitalization TypeAllCharacters, //所有字母大写 ---- 默认键盘的大写 - }
UITextAutocapitalization Type;
textField.autocapitalizationType
五、自动更正
- typedef
enum { -
UITextAutocorrectionType Default,//默认 -
UITextAutocorrectionType No,//不自动更正 ----- 联想功能关闭,输入h,会有this the 等h开头的英文单词供选择, -
UITextAutocorrectionType Yes,//自动更正 ----- 联想功能打开,输入h,会有this the 等h开头的英文单词供选择, - }
UITextAutocorrectionType ;
textField.autocorrectionType
六、安全文本输入
textView.secureTextEntry=YES;
开启安全输入主要是用于密码或一些私人数据的输入,此时会禁用自动更正和自此缓存。