Я использую 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 проблема полностью исчезла.