當在iOS中使用硬件鍵盤時,按Tab或Shift-Tab自動導航到下一個或上一個邏輯響應程序。有沒有辦法通過編程來實現(即模擬Tab鍵而不是手動跟蹤邏輯順序)?在iOS SDK中模擬選項卡按鍵
回答
不知道這是否有幫助,但在UITextFields的上下文中,如果實現UITextFieldDelegate
,則在按下軟鍵盤的返回鍵時將調用- (BOOL)textFieldShouldReturn:(UITextField *)textField
。
我試圖直接打在我的筆記本電腦鍵盤上,它似乎在所有文本框之間按順序添加到視圖中,但沒有轉到任何其他類型的域(按鈕等)。
鍵盤上的按鍵是模擬模擬器的軟鍵盤上的按鍵,它按預期工作。
您可以使用標籤屬性定義「標籤順序」。以下文章介紹如何找到UITextField
s的下一個標籤索引, How to navigate through textfields (Next/Done Buttons)。
以下是該帖子代碼的修改版本。下面的代碼不會去掉最後一個標籤索引處的鍵盤,而是會嘗試循環回第一個標籤索引。
-(BOOL)textFieldShouldReturn:(UITextField*)textField;
{
NSInteger nextTag = textField.tag + 1;
// Try to find next responder
UIResponder* nextResponder = [textField.superview viewWithTag:nextTag];
if (nextResponder) {
// Found next responder, so set it.
[nextResponder becomeFirstResponder];
return NO;
}
// Try to find the first responder instead...
// Assuming the first tag index is 1
UIResponder* firstResponder = [textField.superview viewWithTag:1];
if (firstResponder) {
// loop back to the first responder
[firstResponder becomeFirstResponder];
} else {
// Not found, so remove keyboard.
[textField resignFirstResponder];
}
return NO; // We do not want UITextField to insert line-breaks.
}
如果你想比UITextField
其他的UI元素,你應該仍然能夠使用相同的邏輯,與一些更多的檢查。
作爲William Niu是正確的,但你也可以使用下面解釋的代碼。
我已經使用這個並得到success.Now考慮的UITextField的例子...
可以使用的UITextView的委託方法-(BOOL)textFieldShouldReturn:(UITextField*)textField
如下所述。
但是在做這個之前,你必須給每個UITextField以遞增順序賦予標記...(遞增順序不是必需的,但是對於我的代碼它是必需的,你也可以使用遞減順序,但是一些代碼對於這樣的變化)
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
NSInteger nextTag = textField.tag + 1;
UIResponder* nextResponder = [self.view viewWithTag:nextTag];
if (nextResponder) {
[nextResponder becomeFirstResponder];
} else {
[textField resignFirstResponder];
}
return YES;
}
希望這會爲你工作...
快樂編碼....
這適用於靜態文本字段,並且實際上是一種很好的方法,但如果您的文本字段位於可重複使用的tableviewcells中,它會變得焦躁不安。 – n00neimp0rtant 2014-05-14 14:21:43
- 1. 在WPF中模擬按鍵
- 2. iOS凸起中心選項卡按鈕
- 3. iOS 7 SDK中的iOS模擬器
- 4. 模擬按鍵
- 5. iOS選項卡
- 6. 的Java ME SDK模擬器選項
- 7. IOS禁用鍵盤選項卡箭頭
- 8. 模擬在Java中按住的按鍵
- 9. 如何模擬選項卡控件?
- 10. 當在IOS中選擇選項卡
- 11. 模擬C中的按鍵#
- 12. Android模擬按鍵
- 13. Flex:模擬按鍵
- 14. 按鍵模擬鍵盤按下「Shift」鍵
- 15. 模擬鍵盤按
- 16. 模擬鍵按c#
- 17. VB模擬按鍵
- 18. Sphero:OpenConnectionWithSpecificRobot或iOS官方SDK中的模擬
- 19. 用鼠標中鍵按下winforms選項卡上的關閉選項卡
- 20. iOS模擬器選項的變化
- 21. 我在Netbeans IDE中找到「Problems」選項卡模擬的問題
- 22. 如何在tvOS模擬器中點擊選項卡?
- 23. 在iPhone應用程序中模擬選項卡
- 24. 如何在java中模擬按鍵?
- 25. 模擬箭頭按鍵在Android中
- 26. 如何在js中模擬按鍵
- 27. 在全屏應用中模擬按鍵
- 28. 模擬在C#中一個按鍵
- 29. 如何在JavaScript中模擬按鍵?
- 30. 在javascript中模擬多個按鍵
重複的問題:http://stackoverflow.com/questions/3241966/專注於下一個有效的鍵在iphone上看到了一個很好的答案。 – 2011-06-30 06:06:28