iOS中的UIKeyboard键盘视图使用方法小结

一、键盘风格  
UIKit框架支持8种风格键盘。


typedef enum {  

    UIKeyboardTypeDefault,                // 默认键盘:支持所有字符  

    UIKeyboardTypeASCIICapable,           // 支持ASCII的默认键盘  

    UIKeyboardTypeNumbersAndPunctuation,  // 标准电话键盘,支持+*#等符号  

    UIKeyboardTypeURL,                    // URL键盘,有.com按钮;只支持URL字符  

    UIKeyboardTypeNumberPad,              //数字键盘  

    UIKeyboardTypePhonePad,               // 电话键盘  

    UIKeyboardTypeNamePhonePad,           // 电话键盘,也支持输入人名字  

    UIKeyboardTypeEmailAddress,           // 用于输入电子邮件地址的键盘  

} UIKeyboardType;  


用法用例:

textView.keyboardtype = UIKeyboardTypeNumberPad;


二、键盘外观

typedef enum {  

    UIKeyboardAppearanceDefault,    // 默认外观:浅灰色  

    UIKeyboardAppearanceAlert,      //深灰/石墨色  

} UIKeyboardAppearance; 


用法用例:

textView.keyboardAppearance=UIKeyboardAppearanceDefault;


三、回车键

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 {  

    UITextAutocapitalizationTypeNone, //不自动大写  

    UITextAutocapitalizationTypeWords, //单词首字母大写  

    UITextAutocapitalizationTypeSentences, //句子首字母大写  

    UITextAutocapitalizationTypeAllCharacters, //所有字母大写  

} UITextAutocapitalizationType;  


用法用例:

textField.autocapitalizationType = UITextAutocapitalizationTypeWords;


五、自动更正

typedef enum {  

    UITextAutocorrectionTypeDefault,//默认  

    UITextAutocorrectionTypeNo,//不自动更正  

    UITextAutocorrectionTypeYes,//自动更正  

} UITextAutocorrectionType; 


用法用例:

textField.autocorrectionType = UITextAutocorrectionTypeYes;


六、安全文本输入

textView.secureTextEntry=YES;


开启安全输入主要是用于密码或一些私人数据的输入,此时会禁用自动更正和自此缓存。
七、打开键盘遮住View的问题解决方法
默认情况下打开键盘会遮住下面的view,带来一点点困扰,不过这不是什么大问题,我们使用点小小的手段就可以解决。
首先我们要知道键盘的高度是固定不变的,不过在IOS 5.0 以后键盘的高度貌似不是216了,不过不要紧,我们调整调整就是了:
我们采取的方法就是在textField(有可能是其他控件)接收到弹出键盘事件时把self.view整体上移216px了(我们就以iPhone竖屏为例了)。
首先我们要设置textField的代理,我们就设为当前控制器了。

textField,delegate=self;


然后我们在当前控制器实现下面三个委托方法:

- (void)textFieldDidBeginEditing:(UITextField *)textField  

{ //当点触textField内部,开始编辑都会调用这个方法。textField将成为first responder   

       NSTimeInterval animationDuration = 0.30f;      

      CGRect frame = self.view.frame;  

      frame.origin.y -=216;  

      frame.size.height +=216;  

      self.view.frame = frame;  

       [UIView beginAnimations:@"ResizeView" context:nil];  

       [UIView setAnimationDuration:animationDuration];  

       self.view.frame = frame;                  

       [UIView commitAnimations];                  

}  



- (BOOL)textFieldShouldReturn:(UITextField *)textField   

{//当用户按下ruturn,把焦点从textField移开那么键盘就会消失了  

        NSTimeInterval animationDuration = 0.30f;  

        CGRect frame = self.view.frame;      

        frame.origin.y +=216;        

        frame.size. height -=216;     

        self.view.frame = frame;  

    //self.view移回原位置    

    [UIView beginAnimations:@"ResizeView" context:nil];  

    [UIView setAnimationDuration:animationDuration];  

        self.view.frame = frame;                  

        [UIView commitAnimations];  

        [textField resignFirstResponder];     

}         

声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#nhooo.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。