[英]How do I detect touches on UIStatusBar/iPhone
我正在嘗試檢測iPhone的UIStatusBar
上是否有任何觸摸,但無法正常工作。 我試過子類化UIApplication
和UIWindow
來訪問它,但仍然一無所獲。
根據湯姆的回答,我編寫了代碼。 它運作良好。
- (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;
}
您需要在響應者鏈中有一個UIScrollView,並且它需要有一個委托集。 然后,您可以在委托中重寫scrollViewShouldScrollToTop:
當用戶點擊狀態欄時將調用該委托。 如果不想讓滾動視圖返回頂部的默認行為,請確保返回NO
。
你不能 狀態欄由應用程序保留。 您只能打開和關閉它。
更重要的是,任何對狀態欄的擺弄都可能會使您的應用程序被Apple拒絕,因為這可能會干擾硬件的運行,例如偽裝或隱藏低電量的電池。
如果您需要全屏觸摸來查看視圖,則只需隱藏狀態欄。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.