我试着检测iPhone的UIStatusBar上的任何触摸,但都不起作用。我已经尝试了对UIApplication和UIWindow进行子类化来访问它,但是仍然没有结果。
发布于 2010-03-19 16:40:35
根据Tom的回答,我写了代码。它工作得很好。
- (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;
}发布于 2010-03-19 06:14:35
您的响应器链中需要有一个UIScrollView,并且它需要有一个委派集。然后,您可以覆盖代理中的scrollViewShouldScrollToTop:,当用户在状态栏上点击时,将调用该代理。如果您不想使用滚动视图返回顶部的默认行为,请确保返回NO。
发布于 2010-03-18 23:33:50
您不能。状态栏由应用程序持有。您只能打开和关闭它。
更重要的是,任何摆弄状态栏的操作都可能导致你的应用程序被苹果拒绝,因为它可能会干扰硬件的操作,例如伪装或隐藏低电量。
如果你的视图需要全屏显示,你只需要隐藏状态栏即可。
https://stackoverflow.com/questions/2470562
复制相似问题