iOS中的UIKeyboard键盘视图使用方法小结
程序员文章站
2023-12-14 17:16:10
一、键盘风格
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];
}