2010-05-01 28 views
1

我有一個iPad應用程序,我有一個視圖控制器是UIGestureRecognizerDelegate許多UIGestureRecognizers。我已經實現UIGestureRecognizerDelegate的方法如下:iPad。 UIBarButtonItem有一個UIToolbarTextButton類型的未公開的視圖。咦?

- (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,它是無證的,不能內省。

咦?

有人可以提出一個解決辦法,最好是使用某種形式的內省善良?

感謝,
道格

感謝,

道格

回答

3

,直到你達到一個UIToolbar,EAGLView或nil可以計算.superview反覆。

+0

偉大的思想認爲相同;-)。是的,我真的到了這個解決方案。有點黑客,但看起來很健壯,確實有效。我仍然不明白爲什麼這個按鈕沒有公開訪問視圖。我覺得所有可見的東西都是UIView的一些味道。沒有? – dugla 2010-05-02 21:57:22

+0

@dugla:因爲蘋果公司不希望人們直接混淆UIToolbar的內容。 – kennytm 2010-05-03 03:40:26