ios键盘开发,ios布局键盘
iOS开发八种系统常见键盘
1、英文键盘:
创新互联专注于彭泽企业网站建设,成都响应式网站建设,购物商城网站建设。彭泽网站建设公司,为彭泽等地区提供建站服务。全流程定制网站,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务
UIKeyboardTypeAlphabet(Alphabet字母)
UIKeyboardTypeASCIICapable
UIKeyboardTypeDefault
这三个默认都显示字母表。默认下面第一幅图,点左下角切换到下面第二幅图。
2、数字键盘
UIKeyboardTypeDecimalPad (Decimal十进制)
3、电子邮箱键盘
UIKeyboardTypeEmailAddress
4、没有符号的英文键盘
UIKeyboardTypeNamePhonePad
这个类型默认显示第一幅图片,如果点击123按钮则会显示第二副键盘。
5、没有小数点的数字键盘
UIKeyboardTypeNumberPad
6、全键盘的数字键盘
UIKeyboardTypeNumbersAndPunctuation
默认显示下面第一幅图,切换显示第二幅
7、带符号的数字键盘
UIKeyboardTypePhonePad
默认显示下面第一幅图,切换显示第二幅
8、推特键盘
UIKeyboardTypeTwitter
默认显示下面第一幅图,切换显示第二幅
iOS开发 iPad键盘撤销操作的注意点
键盘的撤销按键是iPad独有的一个按键,在手机端是不存在这个按键的,但是手机端同样也存在撤销操作,只不过并不是通过键盘上的按键来进行撤销操作的。
当对 TextView 或者是 TextField 添加了限制输入长度。然后在控件中输入到最长长度,这时候继续去输入东西,但是从界面上来看我们输入的东西是没有显示出来的。此时按一下键盘上的撤销按键
TextView
TextField
具体的内部细节问题还是要大家共同去探索学习,这里只提供了一下解决方案
当我们在输入键盘自带的表情的时候一定是要去注意一下的。因为他的长度是 2 ,我们正常输入数字、字母、汉字等等可以看做是 1 ,所以如果输入框里面带有表情一定要注意判断长度。
检测是否有表情
iOS开发之自定义表情键盘(组件封装与自动布局)
iOS开发之自定义表情键盘(组件封装与自动布局)
iOS开发之自定义表情键盘(组件封装与自动布局)
iOS开发中的键盘高度变化处理
在ios开发中,键盘很常用。在sdk版本5.0以前,键盘高度是固定值216px;5.0出来以后,键盘高度会随着键盘语言变化(中文要高些),在这种情况下一般而言对于界面需要重新布局。方法是利用NSNotificationCenter。
UIKeyboardWillShowNotification;UIKeyboardDidShowNotification; UIKeyboardWillHideNotification; UIKeyboardDidHideNotification;
这几个notification是5.0sdk之前就有的,顾名思义就知道意思了。
UIKeyboardWillChangeFrameNotification __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_5_0);UIKeyboardDidChangeFrameNotification __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_5_0);
这两个是sdk 5.0以后出来的,用来处理键盘高度的变化。
使用方法是:首先在notification注册观察者,比如:
if([[[UIDevice currentDevice] systemVersion] floatValue] = 5.0) { [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillChangeFrame:) name:UIKeyboardWillChangeFrameNotification object:nil];}
当键盘高度将要变化时,就会收到通知,在通知的参数中可以得到键盘目前的高度和变化的目标高度,比如:
-(void)keyboardWillChangeFrame:(NSNotification*)notif{#if __IPHONE_OS_VERSION_MIN_REQUIRED = __IPHONE_3_2 NSValue *keyboardBoundsValue = [[notif userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey]; #else NSValue *keyboardBoundsValue = [[notif userInfo] objectForKey:UIKeyboardBoundsUserInfoKey]; #endif CGRect keyboardEndRect = [keyboardBoundsValue CGRectValue]; CGRect inputFrame = self.feedBackTextView.frame; //kb 216 vs textFrame 185 float delta = keyboardEndRect.size.height - 216; float originalHeight = inputFrame.size.height; inputFrame.size.height = 185 - delta; if (inputFrame.size.height != originalHeight) { self.feedBackTextView.frame = inputFrame; self.feedBackBackgroundView.frame = inputFrame; }}
另外一些从notification.userInfo中可以取得的key如下:
UIKeyboardFrameBeginUserInfoKey // NSValue of CGRectUIKeyboardFrameEndUserInfoKey // NSValue of CGRectUIKeyboardAnimationDurationUserInfoKey // NSNumber of doubleUIKeyboardAnimationCurveUserInfoKey // NSNumber of double
notif中userInfo的完整信息如下 :
keyboardChange:{ UIKeyboardAnimationCurveUserInfoKey = 0; UIKeyboardAnimationDurationUserInfoKey = "0.25"; UIKeyboardBoundsUserInfoKey = "NSRect: {{0, 0}, {320, 216}}"; UIKeyboardCenterBeginUserInfoKey = "NSPoint: {160, 372}"; UIKeyboardCenterEndUserInfoKey = "NSPoint: {160, 588}"; UIKeyboardFrameBeginUserInfoKey = "NSRect: {{0, 264}, {320, 216}}"; UIKeyboardFrameChangedByUserInteraction = 0; UIKeyboardFrameEndUserInfoKey = "NSRect: {{0, 480}, {320, 216}}";}
下面是一个完整的解决方案,用户需要知道键盘高度的细致变化
下面这个解决方案就只考虑键盘出现和消失的处理
分享文章:ios键盘开发,ios布局键盘
转载源于:http://pwwzsj.com/article/hodiop.html