iphoneiosuiapplication

How can I detect UIStatusBar hide and show?


I'm trying to detect hidden and show of iPhone's UIStatusBar but failed. Are there any solution can help me, like KVO or something else?


Solution

  • You can observe the statusBarHidden property of the shared UIApplication instance.

    Simple example:

    - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
    {
        // Do something here...
    }
    
    - (void)viewDidLoad
    {
        [super viewDidLoad];
    
        [[UIApplication sharedApplication] addObserver:self forKeyPath:@"statusBarHidden" options:NSKeyValueObservingOptionNew context:NULL];
        [[UIApplication sharedApplication] setStatusBarHidden:YES]; // Will notify the observer about the change
    }