【发布时间】:2015-01-27 17:42:28
【问题描述】:
我有一个 iPad 项目,在它的一个视图控制器中,面板视图中有两个 TextField(视图在 Storyboard 中构建)。我想要实现的是当这些文本字段中的任何一个成为第一响应者(即键盘出现)时,面板视图将向上移动,如果键盘消失,它将向下移动到原点位置。
一旦我测试向上移动,我发现键盘消失后视图会自动回到原点位置,但我没有编写任何代码来做到这一点。
向上移动的代码:
- (void)moveUpTextFields {
if ([self.emailTextField isFirstResponder] || [self.passwordTextField isFirstResponder]) {
CGRect frame = self.textFieldPanel.frame;
frame.origin.y -= 50;
self.textFieldPanel.frame = frame;
}
}
所以我想弄清楚这是如何发生的,我应该如何实现我的目标(即如果键盘出现则向上移动并返回到原始位置)?
更新:
为了实现我的目标,它应该使用键盘通知。在viewWillAppear注册这些通知
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillShow:)
name:UIKeyboardWillShowNotification
object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillHide:)
name:UIKeyboardWillHideNotification
object:nil];
}
很久以前我在另一个项目中做过这个,只是一开始不记得了:(
【问题讨论】:
标签: ios objective-c keyboard