处理键盘弹出
来源:互联网 发布:空间数据的差值 编辑:程序博客网 时间:2024/06/02 12:54
最正规的办法,用通知
step 1:
在进入视图的时候添加监视:(viewDidLoad什么的)
复制代码
step 2:
在键盘动作的时候移动视图:
复制代码
step 3:
在退出视图的时候注销通知
viewDidUnload:
复制代码
dealloc:
复制代码
这些代码是摘自apple sample code KeyboardAccessory.
些许细节自己修改下就好了,比如那个textView
step 1:
在进入视图的时候添加监视:(viewDidLoad什么的)
复制代码
- // Observe keyboard hide and show notifications to resize the text view appropriately.
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];
step 2:
在键盘动作的时候移动视图:
复制代码
- - (void)keyboardWillShow:(NSNotification *)notification {
/*
Reduce the size of the text view so that it's not obscured by the keyboard.
Animate the resize so that it's in sync with the appearance of the keyboard.
*/
NSDictionary *userInfo = [notification userInfo];
// Get the origin of the keyboard when it's displayed.
NSValue* aValue = [userInfo objectForKey:UIKeyboardFrameEndUserInfoKey];
// Get the top of the keyboard as the y coordinate of its origin in self's view's coordinate system. The bottom of the text view's frame should align with the top of the keyboard's final position.
CGRect keyboardRect = [aValue CGRectValue];
keyboardRect = [self.view convertRect:keyboardRect fromView:nil];
CGFloat keyboardTop = keyboardRect.origin.y;
CGRect newTextViewFrame = self.view.bounds;
newTextViewFrame.size.height = keyboardTop - self.view.bounds.origin.y;
// Get the duration of the animation.
NSValue *animationDurationValue = [userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey];
NSTimeInterval animationDuration;
[animationDurationValue getValue:&animationDuration];
// Animate the resize of the text view's frame in sync with the keyboard's appearance.
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:animationDuration];
textView.frame = newTextViewFrame;
[UIView commitAnimations];
}
- (void)keyboardWillHide:(NSNotification *)notification {
NSDictionary* userInfo = [notification userInfo];
/*
Restore the size of the text view (fill self's view).
Animate the resize so that it's in sync with the disappearance of the keyboard.
*/
NSValue *animationDurationValue = [userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey];
NSTimeInterval animationDuration;
[animationDurationValue getValue:&animationDuration];
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:animationDuration];
textView.frame = self.view.bounds;
[UIView commitAnimations];
}
step 3:
在退出视图的时候注销通知
viewDidUnload:
复制代码
- [[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillShowNotification object:nil];
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillHideNotification object:nil];
dealloc:
复制代码
- [[NSNotificationCenter defaultCenter] removeObserver:self name:nil object:nil];
这些代码是摘自apple sample code KeyboardAccessory.
些许细节自己修改下就好了,比如那个textView
0 0
- 处理键盘弹出
- 处理键盘弹出事件
- 处理键盘弹出
- 对键盘弹出的处理
- iOS键盘弹出的处理
- 完美处理弹出键盘,界面上移功能
- EditText自动弹出键盘问题处理
- 弹出键盘遮挡按钮的处理方法
- 弹出键盘
- 键盘弹出
- Android 功能自动化测试关于关键盘弹出的处理
- UITextView及UITextField处理键盘弹出 视图上移
- Android键盘处理-监听键盘状态并实现QQ拉出式弹出回复框。
- 键盘自动弹出解决
- 自动弹出键盘
- 实现键盘自动弹出。
- android 弹出键盘
- 弹出键盘的怪事
- iOS CoreBluetooth 教程
- 图片提示效果
- 多线程系列之——事件内核对象
- 发达国家款到发货更健康的复合弓极度疯狂
- Hibernate中多主键对象映射配置
- 处理键盘弹出
- C# user define control demo
- 修改myeclipse 的默认的workspace
- ios 关于推送发布的一些流程
- coretext
- 过河问题 NYOJ 贪心
- javaSE-面向对象-抽象类
- PAT 1007. Maximum Subsequence Sum (25)
- 把字符串转换成整数 C++实现