我试图检测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
。如果您不希望滚动视图滚动到顶部的默认行为,请务必返回qazxswpoi。
你不能。状态栏由应用程序保存。你只能打开和关闭它。
更重要的是,任何摆弄状态栏的人都可能会让Apple拒绝您的应用,因为它可能会干扰硬件的操作,例如伪装或隐藏低电量。
如果您需要全屏触摸视图,您应该隐藏状态栏。