欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

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

程序员文章站 2023-12-05 15:28:52
一、键盘风格   uikit框架支持8种风格键盘。 复制代码 代码如下: typedef enum {    ...

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