我正试图检测iPhone UIStatusBar
上的任何触摸,但它无法正常工作。我已经尝试了对UIApplication
和UIWindow
进行子类化以访问它,但仍然没有。
答案 0 :(得分:5)
根据汤姆的回答,我写了代码。效果很好。
- (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;
}
答案 1 :(得分:1)
您需要在响应者链中拥有UIScrollView,并且需要设置委托。然后,您可以覆盖委托中的scrollViewShouldScrollToTop:
,当用户点击状态栏时,将调用该委托。如果您不希望滚动滚动视图的默认行为回到顶部,请务必返回NO
。
答案 2 :(得分:0)
你做不到。状态栏由应用程序保存。你只能打开和关闭它。
更重要的是,任何摆弄状态栏的人都可能会让Apple拒绝您的应用,因为它可能会干扰硬件的操作,例如:伪装或隐藏低电量。
如果您需要全屏触摸视图,则应隐藏状态栏。