2013-10-15 26 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的文档不会告诉你这一点。

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