IPAD. UIBarButtonItem имеет недокументированное представление типа UIToolbarTextButton. А? - PullRequest
1 голос
/ 01 мая 2010

У меня есть приложение для iPad, где у меня есть контроллер представления, который является UIGestureRecognizerDelegate для ряда UIGestureRecognizer. Я реализовал следующий метод UIGestureRecognizerDelegate:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {


 // Double tapping anywhere on the screen hides/shows the toolbar
 if ([gestureRecognizer isKindOfClass:[UITapGestureRecognizer class]] == YES) {

      if (touch.tapCount == 2) {

           self.toolbar.hidden = self.toolbar.isHidden ? NO : YES;

      } // if (touch.tapCount == 2)

 } // if ([gestureRecognizer isKindOfClass:[UITapGestureRecognizer class]] == YES)


 // All gestures are ignored unless they happen on the fullscreen EAGLView
 if ([touch.view isKindOfClass:[EAGLView class]] == NO) {

      return NO;

 } // if ([touch.view isKindOfClass:[EAGLView class]] == NO)


 return YES;

}

Моя установка - это полноэкранный EAGLView с UIToolbar поверх EAGLView. На панели инструментов есть элемент UIBarButtonItem. Идея здесь заключается в том, что двойное касание в любом месте переключает внешний вид панели инструментов. Все остальные жесты должны выполняться в EAGLView.

Моя проблема заключается в том, что касания непосредственно в UIBarButtonItem показывают, что touch.view является подклассом UIView UIToolbarTextButton, который недокументирован и не может быть подвергнут анализу.

А?

Может ли кто-нибудь предложить обходной путь, предпочтительно с использованием интроспективного совершенства какой-либо формы?

Спасибо
Дуг

Спасибо

Doug

1 Ответ

3 голосов
/ 01 мая 2010

Вы можете вычислять .superview несколько раз, пока не достигнете UIToolbar, EAGLView или nil.

...