平板电脑。 UIBarButtonItem 有一个 UIToolbarTextButton 类型的未记录视图。嗯?

Posted

技术标签:

【中文标题】平板电脑。 UIBarButtonItem 有一个 UIToolbarTextButton 类型的未记录视图。嗯?【英文标题】:iPad. UIBarButtonItem has an undocumented view of type UIToolbarTextButton. Huh? 【发布时间】:2010-05-01 01:18:03 【问题描述】:

我有一个 iPad 应用程序,其中有一个视图控制器,它是许多 UIGestureRecognizer 的 UIGestureRecognizerDelegate。我已经实现了以下 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,在 EAGLView 顶部有一个 UIToolbar。工具栏上有一个 UIBarButtonItem。这里的想法是双击任何地方都会切换工具栏的外观。所有其他手势必须发生在 EAGLView 上。

我的问题是直接点击 UIBarButtonItem 显示 touch.view 是 UIView 子类 UIToolbarTextButton ,它没有记录并且不能自省。

嗯?

有人可以建议一种解决方法,最好是使用某种形式的内省善良吗?

谢谢, 道格

谢谢,

道格

【问题讨论】:

【参考方案1】:

您可以重复计算.superview,直到您到达 UIToolbar、EAGLView 或 nil

【讨论】:

伟大的思想都一样;-)。是的,我实际上到达了这个解决方案。有点hack-ish,但似乎很健壮并且确实有效。我仍然很困惑为什么该按钮不公开可公开访问的视图。我的印象是,所有可见的东西都是 UIView 的某种味道。没有? @dugla:我猜是因为 Apple 不希望人们直接弄乱 UIToolbar 的内容。

以上是关于平板电脑。 UIBarButtonItem 有一个 UIToolbarTextButton 类型的未记录视图。嗯?的主要内容,如果未能解决你的问题,请参考以下文章

UIBarButtonItem 没有出现

在 UIBarButtonItem 中添加边框

UIBarButtonItem 之间有不同的空间

抓取了一个 UIBarButtonItem 的动作

从 UIBarButtonItem 显示 UIMenuController

UIBarButtonItem 没有出现在 UIToolbar Swift 上