如何检测UIStatusBar / iPhone上的触摸

问题描述 投票:2回答:3

我试图检测iPhone的UIStatusBar上的任何触摸,但它无法正常工作。我已经尝试了继承UIApplicationUIWindow来访问它但仍然没有。

ios iphone xcode uiwindow uiapplication
3个回答
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
投票

您需要在响应程序链中拥有UIScrollView,并且需要设置委托。然后,您可以在委托中覆盖scrollViewShouldScrollToTop:,当用户点击状态栏时将调用NO。如果您不希望滚动视图滚动到顶部的默认行为,请务必返回qazxswpoi。


0
投票

你不能。状态栏由应用程序保存。你只能打开和关闭它。

更重要的是,任何摆弄状态栏的人都可能会让Apple拒绝您的应用,因为它可能会干扰硬件的操作,例如伪装或隐藏低电量。

如果您需要全屏触摸视图,您应该隐藏状态栏。

© www.soinside.com 2019 - 2024. All rights reserved.