我正在使用一个包含一些输入字段的
问题是,即使弹出窗口明显可见,我也经常获得未知方向(
在iOS 5.1 UIKit.framework,头文件
我们可以通过getter
弹出窗口
。由于iOS键盘覆盖了大屏幕区域,有时我需要更正弹出窗口的位置(通过移动其目标并在弹出窗口
上调用-presentPopoverFromView:targetView
)。我假设我无法精确确定弹出窗口的视图矩形,但是有箭头方向和内容大小,我可以近似其当前位置。问题是,即使弹出窗口明显可见,我也经常获得未知方向(
UIPopoverArrowDirectionUnknown
)。在iOS 5.1 UIKit.framework,头文件
UIPopoverController.h
中,我们可以读到我们可以获得弹出窗口的箭头
的当前方向(向上、向下、向左、向右、未知之一)。唯一的条件是弹出窗口
需要被呈现。 /* 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
。
弹出框的呈现方式是:
[self presentPopoverFromRect:sourceView.frame inView:sourceView.superview
permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
编辑(解决方案)
我之前在我的设备上(iPad)安装了iOS 5.0.1。编译目标是5.1。在将设备升级到5.1后,问题完全消失了。