[英]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.