Ios 键盘旋转时隐藏

Ios 键盘旋转时隐藏,ios,text,input,keyboard,Ios,Text,Input,Keyboard,我正在开发一款iPad应用程序。在其中一个视图中,我有一个子视图,它在按钮点击事件中出现和消失。子视图包含一个UITextView。默认情况下,我将其设为第一响应程序,以便在视图出现时立即显示键盘。当触发UIKeyboardWillHideNotification即隐藏键盘时,子视图也会消失 现在的问题是,只要应用程序旋转,UIKeyboardWillHideNotification就会被系统触发,从而使子视图消失。我希望键盘保持在屏幕上 发生了什么事,我该怎么解决 注意:视图和子视图都有单独的

我正在开发一款iPad应用程序。在其中一个视图中,我有一个子视图,它在按钮点击事件中出现和消失。子视图包含一个
UITextView
。默认情况下,我将其设为第一响应程序,以便在视图出现时立即显示键盘。当触发
UIKeyboardWillHideNotification
即隐藏键盘时,子视图也会消失

现在的问题是,只要应用程序旋转,
UIKeyboardWillHideNotification
就会被系统触发,从而使子视图消失。我希望键盘保持在屏幕上

发生了什么事,我该怎么解决


注意:视图和子视图都有单独的视图控制器。UIKeyboardWillHideNotification在子视图的视图控制器类中接收。

您可以在shouldAutoRotate方法中声明一个BOOL变量,该变量在调用时设置,然后在用于显示和隐藏子视图的选择器方法中,如果天气视图是否旋转,则可以使用一个简单的条件

像这样:

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

您可以使用BOOL变量来记录它是否在旋转。当它旋转时,你什么也做不了。

我错过了一个小细节。。。“我的视图”和“子视图”都有单独的视图控制器。UIKeyboardWillHideNotification在子视图的视图控制器类中接收。并且子视图不接收旋转通知。UIKeyboardWillHideNotification是在收到其他任何东西之前收到的,这在我看来并不正常。旋转不应触发UIKeyboardWillHideNotification。还是这样?