平板电脑。 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 类型的未记录视图。嗯?的主要内容,如果未能解决你的问题,请参考以下文章