我试图检测任何触摸iPhone的UIStatusBar,但它不工作。我试过继承UIApplication和UIWindow来访问它,但仍然没有任何东西我如何检测触摸UIStatusBar/iPhone
回答
根据汤姆的回答,我写了代码。它运作良好。
- (void)viewDidLoad {
[super viewDidLoad];
// required
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectZero];
scrollView.delegate = self;
scrollView.contentSize = CGSizeMake(0.0f,1.0f);
[scrollView setContentOffset:CGPointMake(0.0f,1.0f) animated:NO];
// optional
scrollView.scrollsToTop = YES; // default is YES.
[self.view addSubview:scrollView];
}
- (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView {
NSLog(@"Detect status bar is touched.");
/* Your own code. */
return NO;
}
你不能。状态栏由应用程序保存。您只能打开和关闭它。
更重要的是,任何摆弄状态栏的操作很可能会让您的应用被Apple拒绝,因为它可能会干扰硬件的操作,例如,伪装或隐藏低电量。
如果您需要全屏触摸您的视图,则应该隐藏状态栏。
你需要在你的响应者链中有一个UIScrollView,并且它需要有一个委托集。然后,您可以在委托中覆盖scrollViewShouldScrollToTop:
,当用户点击状态栏时将调用该委托。如果您不希望将滚动视图滚动回顶部的默认行为,请务必返回NO
。
汤姆,谢谢你的提示。不幸的是,我正在做你所建议的一切,但我仍然没有收到这个事件。 scrollView是第一个响应者,ViewController是委托。任何其他原因为什么你认为这可能无效? – user305578 2010-08-22 03:30:32
尝试了很多东西之后,我找到了答案。我的UIScrollView包含多个UIWebViews。每个UIWebView包含一个默认具有scrollsToTop == YES的UIScrollView; 诀窍是挖掘到UIWebView并将关联的UIScrollView的scrollsToTop设置为NO。之后,原始的UIScrollView的scrollViewShouldScrollToTop没有被UIWebView的那些拦截。 – user305578 2010-08-22 07:20:38
- 1. 触摸后如何检测触摸
- 2. 我如何检测SKSpriteNode已被触摸
- 3. 触摸不检测?
- 4. android检测触摸
- 5. android检测触摸
- 6. 检测CAShapeLayer触摸
- 7. 检测触摸UIButton
- 8. UINavigationItem:检测触摸
- 9. 如何检测何时触摸drawable
- 10. 如何在触摸UIButton时通过UIView检测触摸?
- 11. 如何在UIWebView上检测触摸
- 12. 如何检测NSTextAttachment上的触摸
- 13. 如何检测圆圈中的触摸
- 14. 如何检测多点触摸事件?
- 15. 如何检测触摸哪个视图?
- 16. Xcode Storyboard如何检测触摸项目
- 17. 如何检测触摸屏的形状
- 18. 如何检测UICollectionView的触摸?
- 19. 如何检测UITableViewCell内部的触摸
- 20. 如何检测MPMoviePlayerViewController上的触摸
- 21. 如何检测两个同时触摸?
- 22. 如何检测子精灵触摸
- 23. Box2D如何检测触摸元素
- 24. 检测触摸次数
- 25. 检测复选框触摸
- 26. 检测触摸屏桌面
- 27. 在UIView上检测触摸
- 28. 检测触摸Cocos2d-x
- 29. 检测UIScrollView下的触摸
- 30. Modernizr触摸检测破损
这是* *可能的(根据第一响应者),并在获批申请完成:http://blog.instapaper.com/post/420370426 – Tom 2010-03-18 22:09:38