Это отличный вопрос! К сожалению, вы не можете получать эти «уведомления», не влияя на нормальное поведение. (т.е. "нет, ты не можешь")
Если вы разберете UIKit, вы обнаружите, что UIAccessibilityPostNotification
реализован так:
static void (*__UIAccessibilityBroadcastCallback)(UIAccessibilityNotifications notification, id argument);
void UIAccessibilityPostNotification(UIAccessibilityNotifications notification, id argument) {
__UIAccessibilityBroadcastCallback (notification, argument);
}
Это означает, что эти «уведомления» о доступности не являются обычными уведомлениями. Скорее, они просто параметры внутренней функции обратного вызова. То, как реализована функция обратного вызова, зависит от используемого вами комплекта специальных возможностей.
Вы можете заменить функцию обратного вызова своей собственной, используя недокументированный API _UIAccessibilitySetBroadcastCallback
:
void _UIAccessibilitySetBroadcastCallback(void (*replacement)(UIAccessibilityNotifications notification, id argument)) {
__UIAccessibilityBroadcastCallback = replacement;
}
Однако, нет соответствующей функции get (даже частной), поэтому после ее установки исходные прослушиватели не могут быть снова уведомлены.