[英]How can i trigger keyboard focus (tab key) event on an element in iOS programmatically?
我有一个选项卡列表,我基本上想在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键,然后在循环中转到下一个选项卡项目。
任何线索将不胜感激。
我不确定是否存在针对此问题的即用型解决方案。 我将其实现如下:
创建UITextField
的子类:
class TextField: UITextField { ... }
在其中添加一个属性:
@IBOutlet var nextTextField: TextField?
然后,在情节nextTextField
板内部或在代码中,连接文本字段的nextTextField
属性并确保已设置委托 。
使您的视图控制器符合UITextFieldDelegate
并实现方法shouldReturn
:
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
(textField as? TextField)?.nextTextField.becomeFirstResponder()
return true
}
现在,您可以使用返回键来获得所需的行为:)
对不起Swift代码,我对Objective-C并不了解
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.