[英]How can I make an unknown UITextField resign first responder?
我的視圖有兩個UITextFields
和一個UISwitch
。 如果用戶正在編輯textField
,然后立即觸摸開關(不按回車鍵),則文本將在他們鍵入時留下,沒有AutoCorrect
。
如果我知道他們輸入的是哪個textField
,我可以通過調用[textField resignFirstResponder]
來強制完成自動更正。 但是用戶可能正在輸入任何一個textField
,所以我不知道該調用哪個。
我怎樣才能解決這個問題? 有沒有辦法檢測正在使用哪個textField
? 還是我沒有想到的更簡單的東西?
一種無需跟蹤哪個字段處於活動狀態的可愛方法:
// This causes the current responder (eg. an input field) to resignFirstResponder and
[self.endEditing:YES];
將[self.view endEditing:YES]
替換為以下...
[[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder) to:nil from:nil forEvent:nil];
為正在進行編輯的文本字段調用uitextfielddelegate方法。 這樣您就不必面臨檢測正在編輯哪個文本字段的問題。
因此,實現uitextfielddelegate方法並將文本字段的委托分配給 class,您可以在其中實現方法並處理其中的響應。
您應該感興趣的方法是:
textFieldDidEndEditing:
告訴代理指定文本字段的編輯已停止。
- (void)textFieldDidEndEditing:(UITextField *)textField
參數
textField
編輯結束的文本字段。討論
在文本字段放棄其第一響應者狀態后調用此方法。 您可以使用此方法更新您的代理的 state 信息。 例如,您可以使用此方法隱藏應僅在編輯時可見的覆蓋視圖。 委托執行此方法是可選的。
可用性
在 iOS 2.0 及更高版本中可用。
宣布於
UITextField.h
您可以使用 textFieldDidBeginEditing 委托來跟蹤自己是哪一個是當前的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.