iPad. UIBarButtonItem has an undocumented view of type UIToolbarTextButton. Huh?

限于喜欢 提交于 2019-12-11 06:56:22

问题


I have an iPad app where I have a view controller that is the UIGestureRecognizerDelegate for a number of UIGestureRecognizers. I have implemented the following method of 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;

}

My setup is a fullscreen EAGLView with a UIToolbar atop the EAGLView. There is a UIBarButtonItem on the toolbar. The idea here is that double-tapping anywhere toggles the appearance of the toolbar. All other gestures must occur on the EAGLView.

My problem is that taps directly on the UIBarButtonItem show touch.view to be the UIView subclass UIToolbarTextButton which is undocumented and can't be introspected.

Huh?

Can someone suggest a work around, preferably that uses introspective goodness of some form?

Thanks,
Doug

Thanks,

Doug


回答1:


You can compute the .superview repeatedly until you reach a UIToolbar, EAGLView or nil.



来源:https://stackoverflow.com/questions/2748512/ipad-uibarbuttonitem-has-an-undocumented-view-of-type-uitoolbartextbutton-huh

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!