Ios 可访问性:将voice-over焦点移动到UITableViewController中tableView中的第一个单元格
我有一个主窗口,其中有两个UITableViewController。在第一个tableViewController(左窗格)中选择单元格时,将填充右侧的tableViewContainer。在Voice-over模式中,我希望当第一个tableViewController中的单元格被选中时,第二个ViewController中的第一个单元格获得焦点,以便从那里开始轻弹顺序。请注意,我已经尝试了以下两种方法: 1) 使第二视图控制器的第一个单元成为第一响应者Ios 可访问性:将voice-over焦点移动到UITableViewController中tableView中的第一个单元格,ios,uitableview,accessibility,navigationcontroller,Ios,Uitableview,Accessibility,Navigationcontroller,我有一个主窗口,其中有两个UITableViewController。在第一个tableViewController(左窗格)中选择单元格时,将填充右侧的tableViewContainer。在Voice-over模式中,我希望当第一个tableViewController中的单元格被选中时,第二个ViewController中的第一个单元格获得焦点,以便从那里开始轻弹顺序。请注意,我已经尝试了以下两种方法: 1) 使第二视图控制器的第一个单元成为第一响应者 - (UITableViewCell
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *outCell =(UITableCellView*) [tableView dequeueReusableCellWithIdentifier:MyIdentifier];
if (indexPath.row == 0)
{
[outCell becomeFirstResponder];
}
}
2) 我还尝试发布布局更改通知,将单元格作为第一个可访问性项目
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *outCell =(UITableCellView*) [tableView dequeueReusableCellWithIdentifier:MyIdentifier];
if (indexPath.row == 0)
{
UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, outCell);
}
}
上述方法都不起作用。你知道我还能尝试什么吗?或者上述方法有什么问题吗
请注意:我已经阅读了视图控制器的文档(将画外音光标移动到特定元素)。尝试在我的示例中发布LayoutChanged通知以及ScreenChangedNotifications,并尝试使用示例代码(ListAdder-,它也像我们一样使用NavigationController),但上述操作即使在示例中也不起作用
知道为什么吗?我通过发布屏幕更改通知解决了这个问题。该调用的第二个参数是要选择其第一个单元格的表视图的视图
UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification,[[self-nextTableViewController]视图];您是否尝试过
UIAccessibilityScreenChangedNotification
?您也可以尝试将通知移动到tableView:willDisplayCell:ForRowatingIndexPath
。