弹出窗口箭头方向无法确定。

4
我正在使用一个包含一些输入字段的弹出窗口。由于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后,问题完全消失了。


如果您解决了问题,请发布答案并标记为已接受,这样该问题就不会显示为未回答。 - Greg
1个回答

0

我的设备(iPad)上安装了iOS 5.0.1。编译目标是5.1。将设备更新到5.1后,问题完全消失了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接