无法确定弹出箭头方向

时间:2012-03-26 22:21:57

标签: ios ios5 uikit uipopovercontroller

我正在使用包含一些输入字段的popover。由于iOS键盘覆盖大屏幕区域,有时我需要更正弹出窗口位置(通过移动目标并在-presentPopoverFromView:targetView上调用popover)。我假设我不能精确地确定弹出窗口的视图矩形,但是有箭头方向和内容大小,我可以近似它的当前位置。

问题在于,即使弹出窗口清晰可见,我也会不断地知道方向(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后,问题完全消失。

1 个答案:

答案 0 :(得分:0)

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