如何跳过对一个栏按钮项目的辅助功能焦点并保持对工具栏其他栏按钮项目的关注

问题描述 投票:0回答:1

我有一个工具栏,我想在打开辅助功能时跳过标题按钮。

我可以使用 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]; } } }

问题是它是作为整个工具栏而不是逐个栏项目读出的。

ios accessibility uibarbuttonitem uitoolbar uiaccessibility
1个回答
-1
投票
© www.soinside.com 2019 - 2024. All rights reserved.