【发布时间】:2012-03-26 22:21:56
【问题描述】:
我正在使用包含一些输入字段的popover。由于 iOS 键盘覆盖了大屏幕区域,有时我需要更正弹出窗口的位置(通过移动其目标并在 popover 上调用 -presentPopoverFromView:targetView)。我假设我无法精确确定弹出窗口的视图矩形,但有了箭头方向和内容大小,我可以近似它的当前位置。
问题是,即使弹出窗口清晰可见,我也经常遇到未知方向 (UIPopoverArrowDirectionUnknown)。
在 iOS 5.1 UIKit.framework 中,头文件UIPopoverController.h 我们可以读到我们可以得到popover arrow 的当前方向(上、下、左、右、未知之一)。唯一的条件是需要提供popover。
/* Returns the direction the arrow is pointing on a presented popover. Before presentation, this returns UIPopoverArrowDirectionUnknown.
*/
@property (nonatomic, readonly) UIPopoverArrowDirection popoverArrowDirection;
我们可以确定弹出框是否带有getter isPopoverVisible:
/* Returns whether the popover is visible (presented) or not.
*/
@property (nonatomic, readonly, getter=isPopoverVisible) BOOL popoverVisible;
但尽管我可以看到弹出箭头向上或向下等以及myPopover.isPopoverVisible == YES,但箭头方向仍然是myPopover.popoverArrowDirection == UIPopoverArrowDirectionUnknown。
popover 提供者:
[self presentPopoverFromRect:sourceView.frame inView:sourceView.superview
permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
编辑(解决方案)
我的设备 (iPad) 上安装了 iOS 5.0.1。编译目标是 5.1。将设备更新到 5.1 后,问题完全消失了。
【问题讨论】:
-
如果您已经解决了问题,请发布答案并将其标记为已接受,这样问题就不会显示为未回答。
-
@PartiallyFinite,谢谢。学习...
标签: ios ios5 uikit uipopovercontroller