iOS开发键盘控制不输入特殊字符(结果:点击特殊字符不显示在输入框内)

一,注册通知

    [[NSNotificationCenter defaultCenteraddObserver: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种风格键盘。

  1. typedef enum  
  2.     UIKeyboardTypeDefault,                // 默认键盘:支持所有字符   
  3.     UIKeyboardTypeASCIICapable,           // 支持ASCII的默认键盘   
  4.     UIKeyboardTypeNumbersAndPunctuation,  // 标准电话键盘,支持+*#等符号   
  5.     UIKeyboardTypeURL,                    // URL键盘,有.com按钮;只支持URL字符   
  6.     UIKeyboardTypeNumberPad,              //数字键盘   
  7.     UIKeyboardTypePhonePad,               // 电话键盘   
  8.     UIKeyboardTypeNamePhonePad,           // 电话键盘,也支持输入人名字   
  9.     UIKeyboardTypeEmailAddress,           // 用于输入电子邮件地址的键盘   
  10. UIKeyboardType;  

用法用例:

textView.keyboardtype= UIKeyboardTypeNumberPad;

二、键盘外观

  1. typedef enum  
  2.     UIKeyboardAppearanceDefault,    // 默认外观:浅灰色   
  3.     UIKeyboardAppearanceAlert,      //深灰/石墨色   
  4. UIKeyboardAppearance;  

用法用例:

textView.keyboardAppearance=UIKeyboardAppearanceDefault;

三、回车键

  1. typedef enum  
  2.     UIReturnKeyDefault, //默认:灰色按钮,标有Return
  3.     UIReturnKeyGo,  //标有Go的蓝色按钮
  4.     UIReturnKeyGoogle, //标有Google的蓝色按钮,用于搜索
  5.     UIReturnKeyJoin, //标有Join的蓝色按钮
  6.     UIReturnKeyNext, //标有Next的蓝色按钮
  7.     UIReturnKeyRoute, //标有Route的蓝色按钮
  8.     UIReturnKeySearch, //标有Search的蓝色按钮
  9.     UIReturnKeySend, //标有Send的蓝色按钮
  10.     UIReturnKeyYahoo, //标有Yahoo!的蓝色按钮,用于搜索
  11.     UIReturnKeyDone, //标有Done的蓝色按钮
  12.     UIReturnKeyEmergencyCall//紧急呼叫按钮
  13. UIReturnKeyType; 

用法用例:

textView.returnKeyType=UIReturnKeyGo;

四、自动大写

  1. typedef enum  
  2.     UITextAutocapitalizationTypeNone, //不自动大写   
  3.     UITextAutocapitalizationTypeWords, //单词首字母大写   
  4.     UITextAutocapitalizationTypeSentences, //句子首字母大写   
  5.     UITextAutocapitalizationTypeAllCharacters, //所有字母大写 ---- 默认键盘的大写  
  6. UITextAutocapitalizationType;  
用法用例:

textField.autocapitalizationType UITextAutocapitalizationTypeWords;

五、自动更正

  1. typedef enum  
  2.     UITextAutocorrectionTypeDefault,//默认   
  3.     UITextAutocorrectionTypeNo,//不自动更正 ----- 联想功能关闭,输入h,会有this  the 等h开头的英文单词供选择,   
  4.     UITextAutocorrectionTypeYes,//自动更正   -----  联想功能打开,输入h,会有this  the 等h开头的英文单词供选择,
  5. UITextAutocorrectionType 
用法用例:

textField.autocorrectionType UITextAutocorrectionTypeYes;

六、安全文本输入

textView.secureTextEntry=YES;

开启安全输入主要是用于密码或一些私人数据的输入,此时会禁用自动更正和自此缓存。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值