Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
调整iOS硬件键盘的视图框_Ios_Objective C_Keyboard - Fatal编程技术网

调整iOS硬件键盘的视图框

调整iOS硬件键盘的视图框,ios,objective-c,keyboard,Ios,Objective C,Keyboard,我按照这里的说明使用iOS键盘调整视图。 这不适用于硬件键盘。当文本视图处于活动状态时,不会显示iOS键盘,但示例代码仍然返回键盘的全高。在我的情况下,屏幕上只显示输入附件视图 如何检测这种情况并仅调整输入附件视图的视图?您可以将键盘框架与当前窗口相交,如我的回答所示。遇到了相同的问题。 看起来iOS键盘已完全实例化,并在连接硬件键盘时移出了部分视图。因此,键盘的大小是正确的。它只是没有完全显示出来 在检查了通知之后,我自己通过计算可见键盘高度来解决这个问题。 在我的示例中,我正在收听UIKe

我按照这里的说明使用iOS键盘调整视图。

这不适用于硬件键盘。当文本视图处于活动状态时,不会显示iOS键盘,但示例代码仍然返回键盘的全高。在我的情况下,屏幕上只显示输入附件视图


如何检测这种情况并仅调整输入附件视图的视图?

您可以将键盘框架与当前窗口相交,如我的回答所示。

遇到了相同的问题。 看起来iOS键盘已完全实例化,并在连接硬件键盘时移出了部分视图。因此,键盘的大小是正确的。它只是没有完全显示出来

在检查了通知之后,我自己通过计算可见键盘高度来解决这个问题。 在我的示例中,我正在收听UIKeyboardWillShowNotification、UIKeyboardWillChangeFrameNotification和UIKeyboardWillHideNotification

-(void)keyboardMessage:(NSNotification*)notification {
        NSDictionary *userInfo = notification.userInfo;
        CGFloat duration = [userInfo[@"UIKeyboardAnimationDurationUserInfoKey"] floatValue];
        NSValue *value = userInfo[@"UIKeyboardFrameEndUserInfoKey"];
        CGRect frame = [value CGRectValue];
        [UIView animateWithDuration:duration animations:^{
            self.lowerContraint.constant = self.view.frame.size.height - frame.origin.y;;
            [self.view needsUpdateConstraints];
            [self.view layoutIfNeeded];
        }];
    }
可能重复的