2013-10-15 4 views
4

Я не уверен, что это ошибка iOS 7 или что. Но..Я не могу заставить UIAccessibilityInvertColorsStatusDidChangeNotification работать.UIAccessibilityInvertColorsStatusDidChangeNotification не наблюдается в iOS 7

Так что, когда я инициализировать мой наконечник я делаю это:

- (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]; 
    } 
} 

Однако, когда мое приложение работает, и изменить режим Invert Colors через tripple-tap на домашней кнопке ничего не происходит в приложении. Не получайте сообщение на консоли, не получите изменения tintColor, не получите ничего.

Я тестировал это на iOS 6 и iOS 7. Я попытался настроить my build target для iOS 6.1 вместо 4.3, и это тоже не исправило.

Я попытался добавить -(void)inverted; к моему интерфейсу, и это не исправить. Я попробовал добавить двоеточие после инвертирования, но это также не исправило его, и документы говорят, что это уведомление не имеет аргумента в любом случае.

Очевидно, что я делаю что-то неправильно. Какие? Заранее спасибо.

ответ

4

Weird ... должно быть ошибка, но ...

все, что я должен был сделать, чтобы исправить это было назвать

UIAccessibilityIsInvertColorsEnabled(); 

внутри метода viewDidLoad в ViewController. После того, как я добавил одну строку кода, теперь уведомления проходят через очень хорошо (хотя есть еще один кадр отображения, где он отображается неправильно). Очевидно, уведомления об инвертированных цветах вообще не наблюдаются, если вы не назовете это первым. Документация Apple не говорит вам об этом.

Определенно одна из странных вещей, с которыми я столкнулся.