簡體   English   中英

如何讓未知的 UITextField 辭職第一響應者?

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

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