我正在开发一个应用程序,其中一些表单包含在弹出窗口中。我的问题是,当我点击任何文本输入字段并出现键盘时,弹出窗口会缩小到屏幕的左上角(0,0),你无法看到正在输入的字段。当你点击隐藏键盘按钮时,弹出窗口会恢复到正常大小和位置。
有没有办法防止键盘出现时弹出窗口的大小改变?
以下是屏幕截图,以防我的描述不足。
编辑:以下是如何在屏幕上呈现弹出窗口的代码:
在弹出窗口中,有一个单独的视图控制器,其布局设置在xib中。如果有任何问题,请随时问我,我对iOS和Objective C还比较新,但我并不是编码新手,所以我会尽力澄清。
编辑2: 我发现这只发生在iOS 5中。在旧版本的iOS中,弹出窗口仅垂直折叠,直到有足够的空间容纳键盘。关于为什么iOS 5的行为发生了变化,有什么想法吗?
有没有办法防止键盘出现时弹出窗口的大小改变?
以下是屏幕截图,以防我的描述不足。
编辑:以下是如何在屏幕上呈现弹出窗口的代码:
(void)displayPopoverForOrientation:(UIInterfaceOrientation)orientation {
if ([Utilities getAppDelegate].menuPopover) {
CGRect rect = CGRectMake(0, 0, 0, 0);
if (orientation == UIInterfaceOrientationLandscapeLeft ||
orientation == UIInterfaceOrientationLandscapeRight) {
if (self.currentPopover == RESERVATIONS_POPOVER) {
rect = CGRectMake(365, 0, 0, 0);
} else if (self.currentPopover == ACCOUNT_POPOVER) {
rect = CGRectMake(600, 0, 0, 0);
} else if (self.currentPopover == RESORTS_POPOVER) {
rect = CGRectMake(0, 0, 0, 0);
}
}
[[Utilities getAppDelegate].menuPopover presentPopoverFromRect:rect
inView:self.view
permittedArrowDirections:UIPopoverArrowDirectionUp
animated:YES];
}
}
在弹出窗口中,有一个单独的视图控制器,其布局设置在xib中。如果有任何问题,请随时问我,我对iOS和Objective C还比较新,但我并不是编码新手,所以我会尽力澄清。
编辑2: 我发现这只发生在iOS 5中。在旧版本的iOS中,弹出窗口仅垂直折叠,直到有足够的空间容纳键盘。关于为什么iOS 5的行为发生了变化,有什么想法吗?
- (CGRect)convertRect:(CGRect*)rect fromWindow:(UIWindow)window
。 - Roman Temchenko