广

IOS开发

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

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

    2018-04-08 09:04:22 次阅读 稿源:互联网
    零七广告

    一、键盘风格  
    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];    
    }        

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七广告
    零七广告
    零七广告
    零七广告