我有一个选项卡列表,我基本上想在XCUITest
中自动化一个测试用例,在这里我可以通过iPhone / iPad
中的选项卡键或左右箭头键在选项卡之间导航。
我曾尝试将tabsView设置为FirstResponder。
代码:
self.tabTitles = [NSMutableArray arrayWithArray:@[@"TAB1", @"TAB2", @"TAB3", @"TAB4",@"TAB5", @"TAB6", @"TAB7", @"TAB8"]];
self.tabsView = [[AdobeSCTabs alloc] initWithFrame:CGRectZero];
self.tabsView.delegate = self;
[_tabsView becomeFirstResponder];
[self.testingView addSubview:self.tabsView];
但是使用此代码,当我手动按Tab键时,控件将移至第一个标签项。
我搜索了“ KeyEvents”,但是作为Apple Documentation,它们用于macOS。 我想自动在整个选项卡列表上按一个选项卡键。这样,当我调用一个方法时,将首先在第一个项目上按Tab键,然后在循环中转到下一个选项卡项目。
任何线索都将不胜感激。
答案 0 :(得分:0)
我不确定是否存在针对此问题的现成解决方案。我将其实现如下:
创建UITextField
的子类:
class TextField: UITextField { ... }
在其中添加属性:
@IBOutlet var nextTextField: TextField?
然后,在情节提要中或在代码中,连接文本字段的nextTextField
属性并确保已设置代理人。
使您的视图控制器符合UITextFieldDelegate
并实现方法shouldReturn
:
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
(textField as? TextField)?.nextTextField.becomeFirstResponder()
return true
}
您现在可以使用返回键来获得所需的行为:)
抱歉,Swift代码,我对Objective-C不太了解