我試圖檢測任何觸摸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