Направление стрелки всплывающего окна не может быть определено - PullRequest
4 голосов
/ 27 марта 2012

Я использую 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;

Мы можем определить, представлен ли поповер с геттером 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];

РЕДАКТИРОВАТЬ (решение)

У меня была iOS 5.0.1 установлено на моем устройстве (iPad).Цель компиляции была 5.1.После обновления устройства до 5.1 проблема полностью исчезла.

1 Ответ

0 голосов
/ 10 октября 2012

На моем устройстве (iPad) была установлена ​​iOS 5.0.1. Цель компиляции была 5.1. После обновления устройства до 5.1 проблема полностью исчезла.

...