以编程方式解锁键盘?

时间:2013-02-28 20:47:47

标签: ios keyboard

我认为我们无法以编程方式取消虚拟键盘的连接。如果可能,当然,我想知道如何。我还认为我们无法以编程方式打开 Split Keyboard 开关(General> Keyboard)。

无论如何,我的情况如下。我在顶部有一个tableview控件,在它下面有一个textview控件,底部有一个工具栏控件。 textview控件是可编辑的。因此,如果用户触摸它,虚拟键盘将打开,覆盖底部工具栏控件。此键盘将覆盖工具栏控件上的按钮。我该怎么做才能让用户可以访问这些按钮?我确实已准备好 UIKeyboardDidShowNotification UIKeyboardWillHideNotification 的通知,以便我可以判断用户何时触摸textview控件。将工具栏控件放在除最底部之外的其他位置?我希望我不必这样做。也许,在键盘启动时向上移动整个视图?我想我能做到。

感谢您的建议。

1 个答案:

答案 0 :(得分:-1)

我刚刚决定在虚拟键盘打开时向上移动整个画面。它看起来并不坏。

- (void)keyboardWasShown:(NSNotification*)aNotification {
// NSLog(@"It's appeared.");

keyboardup = true;
[self.view setFrame:CGRectMake(self.view.frame.origin.x,self.view.frame.origin.y-300,self.view.frame.size.width,self.view.frame.size.height)];

}

- (void)keyboardWillBeHidden:(NSNotification*)aNotification {
// NSLog(@"It's gone");

keyboardup = false;
    [self.view setFrame:CGRectMake(self.view.frame.origin.x,self.view.frame.origin.y+300,self.view.frame.size.width,self.view.frame.size.height)];

}

- (void)keyboardCallingNotifications {
[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(keyboardWasShown:)
                                             name:UIKeyboardDidShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(keyboardWillBeHidden:)
                                             name:UIKeyboardWillHideNotification object:nil];
}