iPhone의 UIStatusBar에서 터치를 감지하려고하지만 작동하지 않습니다. UIApplication 및 UIWindow 서브 클래 싱을 시도했지만 아무 것도 액세스하지 못했습니다.UIStatusBar/iPhone에서 터치를 감지하는 방법
답변
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;
}
수 없습니다. 상태 표시 줄은 응용 프로그램에 의해 보류됩니다. 이 기능을 켜거나 끌 수만 있습니다.
더 중요한 것은 상태 표시 줄을 들으면 Apple의 하드웨어 작동을 방해 할 수 있으므로 Apple에서 귀하의 앱을 거부 할 수 있습니다. 낮은 배터리를 위장하거나 숨기기.
보기를 전체 화면으로 눌러야하는 경우 상태 표시 줄을 숨기 만하면됩니다.
응답자 체인에 UIScrollView가 있어야하며 위임 집합이 있어야합니다. 위임자에서 scrollViewShouldScrollToTop:
을 재정의 할 수 있으며, 사용자가 상태 표시 줄을 두드리면 호출됩니다. 스크롤보기를 다시 위로 스크롤하는 기본 동작을 원하지 않으면 NO
을 반환하십시오.
톰, 감사합니다. 불행히도 나는 당신이 제안한 모든 것을하고 있지만 여전히 이벤트를받지 못하고 있습니다. scrollView는 첫 번째 응답자이고 ViewController는 대리자입니다. 이것이 작동하지 않을 수도 있다고 생각하는 다른 이유는 무엇입니까? – user305578
여러 가지 시도를 한 후에 답을 찾았습니다. 내 UIScrollView 여러 UIWebViews가 포함되어 있습니다. 각 UIWebView에는 기본적으로 scrollsToTop == YES가있는 UIScrollView가 있습니다. 트릭은 UIWebView를 파고 관련 UIScrollView의 scrollsToTop을 NO로 설정하는 것이 었습니다. 그 후 원래의 UIScrollView의 scrollViewShouldScrollToTop은 UIWebView의 것들에 의해 인터셉트되지 않았습니다. – user305578
그것은 * (첫 번째 응답자에 따라) 가능 *이며, 승인 된 응용 프로그램에서 수행됩니다 팁을위한 http://blog.instapaper.com/post/420370426 – Tom