我有一个工具栏,我想在打开辅助功能时跳过标题按钮。
我可以使用 accessibilityElementsHidden 跳过整个 工具栏的 accessibility。
但我只想跳过标题栏按钮的辅助功能焦点。
我尝试单独禁用标题按钮的可访问性。
但它不起作用。
所以我设置了 AccessibilityElements 属性,它跳过标题栏并读出右侧的 DONE 按钮。但根本没有个人关注“完成”按钮。当我使用 AccessibilityElements 时,各个栏按钮项目缺少焦点。 更新:
我在这里添加了观察者
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
这里是观察者
[NSNotificationCenter.defaultCenter addObserver:self selector:@selector(beginEditingHandler:) name:UITextFieldTextDidBeginEditingNotification object:nil];
这是我管理辅助功能项目的方式
- (void)beginEditingHandler:(NSNotification *)notification {
UIResponder *responder = notification.object;
IQToolbar *inputAccessoryView = responder.inputAccessoryView;
if (inputAccessoryView) {
if ([inputAccessoryView isKindOfClass:[IQToolbar class]]){
NSMutableArray *arrAccessibilityItems = [[NSMutableArray alloc]init];
if(inputAccessoryView.previousBarButton){
if(!inputAccessoryView.previousBarButton)
[arrAccessibilityItems addObject:inputAccessoryView.previousBarButton];
}
if(inputAccessoryView.nextBarButton){
if(!inputAccessoryView.nextBarButton.isHidden)
[arrAccessibilityItems addObject:inputAccessoryView.nextBarButton];
}
if(inputAccessoryView.titleBarButton){
IQTitleBarButtonItem *titleBtn= inputAccessoryView.titleBarButton;
if(titleBtn.title.length>0){
[arrAccessibilityItems addObject:inputAccessoryView.titleBarButton];
}
}
if(inputAccessoryView.doneBarButton){
[arrAccessibilityItems addObject:inputAccessoryView.nextBarButton];
}
[inputAccessoryView setAccessibilityElements:arrAccessibilityItems];
}
}
}
问题是它是作为整个工具栏而不是逐个栏项目读出的。