簡體   English   中英

如何以編程方式觸發iOS元素上的鍵盤焦點(Tab鍵)事件?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM