2013-10-15 60 views
4

我不確定這是iOS 7的bug還是什麼。但是..我無法使UIAccessibilityInvertColorsStatusDidChangeNotification正常工作。iOS 7中沒有觀察到UIAccessibilityInvertColorsStatusDidChangeNotification

所以,當我初始化我的筆尖我這樣做:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { 
    if ((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])) { 

     [[NSNotificationCenter defaultCenter] addObserver:self 
               selector:@selector(inverted) 
                name:UIAccessibilityInvertColorsStatusDidChangeNotification 
                object:nil]; 
    } 
    return self; 
} 

在我的代碼後來我有通知:

- (void)inverted { 
    if(UIAccessibilityIsInvertColorsEnabled()) { 
     NSLog(@"setting tintcolor to cyan"); 
     self.view.tintColor = [UIColor cyanColor]; 
     [self tintColorDidChange]; 
    } else { 
     NSLog(@"setting tintcolor to red"); 
     self.view.tintColor = [UIColor redColor]; 
     [self tintColorDidChange]; 
    } 
} 

但是我的應用程序運行時,我改變了反轉顏色模式通過tripple點擊主頁按鈕,應用程序中沒有任何反應。不要在控制檯上得到消息,不要改變tintColor,別弄錯'。

我在iOS 6和iOS 7上測試了這個。我嘗試了爲iOS 6.1而不是4.3設置我的構建目標,也沒有修復它。

我試着將-(void)inverted;添加到我的界面,並沒有解決它。我嘗試在倒置後添加冒號,但這並沒有解決它,文檔說這個通知無論如何都沒有任何爭論。

顯然我做錯了什麼。什麼?提前致謝。

回答

4

怪異......必須是一個錯誤,但...

我不得不爲了解決這個問題需要做的就是打電話給

UIAccessibilityIsInvertColorsEnabled(); 

的的viewController的viewDidLoad方法中。在我添加了一行代碼之後,現在通知就很順利(儘管仍然有一幀顯示錯誤)。很明顯,倒過來的顏色通知根本不會被觀察到,除非您先調用它。 Apple的文檔不會告訴你這一點。

肯定是我遇到的奇怪的事情之一。