Как обнаружить прикосновения на UIStatusBar / iPhone - PullRequest
2 голосов
/ 18 марта 2010

Я пытаюсь обнаружить любое прикосновение к iPhone 1001 *, но оно не работает. Я попытался создать подклассы UIApplication и UIWindow для доступа к нему, но все равно ничего.

Ответы [ 3 ]

5 голосов
/ 19 марта 2010

Основываясь на ответе Тома, я написал код. Хорошо работает.

- (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 голос
/ 19 марта 2010

Вам необходимо иметь UIScrollView в цепочке респондента, и для него должен быть установлен делегат. Затем вы можете переопределить scrollViewShouldScrollToTop: в делегате, который будет вызываться, когда пользователь нажимает на строку состояния. Обязательно верните NO, если вы не хотите, чтобы по умолчанию прокручивалось представление прокрутки до самого верха.

0 голосов
/ 18 марта 2010

Вы не можете. Строка состояния удерживается приложением. Вы можете только включить и выключить его.

Что еще более важно, любое вмешательство в строку состояния может привести к тому, что Apple отклонит ваше приложение, поскольку оно может помешать работе оборудования, например замаскировать или скрыть разряженную батарею.

Если вам нужны полноэкранные касания для ваших просмотров, вам просто нужно скрыть строку состояния.

...