我正在开发 iPad 应用程序。在其中一个视图中,我有一个子视图,它在按钮点击事件时出现和消失。子视图包含一个UITextView
。默认情况下,我将其设置为第一响应者,以便在视图出现时键盘立即出现。子视图也会消失UIKeyboardWillHideNotification
被触发,即键盘被隐藏。
现在的问题是,一旦应用程序旋转,UIKeyboardWillHideNotification
由系统触发,这反过来又使子视图消失。我希望键盘保留在屏幕上。
这是怎么回事,我该如何解决它!?
注意:视图和子视图都有单独的视图控制器。 UIKeyboardWillHideNotification 在子视图的视图控制器类中接收。
您可以在 shouldAutoRotate 方法中声明一个 BOOL 变量,并在调用它时设置该变量,然后在用于显示和隐藏子视图的选择器方法中,您可以使用一个简单的 if 条件来判断天气视图是否旋转。
像这样:
if(viewRotated)
{
subView.hidden = YES;
}
viewRotated = NO;
编辑部分:
我不确定这段代码发生了什么,但它在我的一个应用程序中完美运行,该应用程序的 ipad 编码是由我的朋友完成的。
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
if(UIInterfaceOrientationIsPortrait(interfaceOrientation))
{
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillShow:)
name:UIKeyboardWillShowNotification
object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillHide:)
name:UIKeyboardWillShowNotification
object:nil];
}
else
{
[[NSNotificationCenter defaultCenter] removeObserver:self
name:UIKeyboardWillShowNotification
object:nil];
[[NSNotificationCenter defaultCenter] removeObserver:self
name:UIKeyboardWillShowNotification
object:nil];
}
return YES;
}
如果您的 UIKeyboardWillHideNotification 未通过在此方法中再次添加这些通知而触发,您可以再次添加通知。
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)