我有一個UITextfield,我想解僱鍵盤。無論使用什麼代碼,我似乎都無法讓鍵盤消失。如何關閉iOS鍵盤?
回答
[myTextField resignFirstResponder]
Here,管理鍵盤部分的第二段。
我建議你添加和行動上你的頭文件:
-(IBAction)removeKeyboard;
並在實施,寫這樣的事:
-(IBAction)removeKeyboard
{
[self.textfield resignFirstResponder];
}
在NIB文件,從UITextFiled連接文件的所有者在選項DidEndOnExit。這樣,當你按回車時,鍵盤將消失。
希望它有幫助!
如果您有多個文本字段並且不知道哪一個是第一響應者(或者您根本無法訪問您編寫此代碼的任何地方的文本字段),您可以在父視圖上調用endEditing:
文本字段。
在視圖控制器的方法,它是這樣的:
[self.view endEditing:YES];
參數強制文本字段辭職第一響應狀態。如果您使用的是委託執行驗證,並希望停止一切直到文本字段的內容是有效的,你也可以這樣的代碼是:
BOOL didEndEditing = [self.view endEditing:NO];
if (didEndEditing) {
// on to the next thing...
} else {
// text field must have said to first responder status: "never wanna give you up, never wanna let you down"
}
的endEditing:
方法是不是告訴單獨的文本字段resignFirstResponder
好得多,但由於某種原因,直到最近我才發現它。
您只需將yourTextFieldName
替換爲,您猜對了!你的文本框。這將關閉鍵盤。
[yourTextFieldName resignFirstResponder];
-(void)methodName
{
[textFieldName resignFirstResponder];
}
調用此方法(方式)與didEndOnExit
如果你不知道哪個文本框是你能找到它的第一個響應者。我用這個功能:
UIView *resignFirstResponder(UIView *theView)
{
if([theView isFirstResponder])
{
[theView resignFirstResponder];
return theView;
}
for(UIView *subview in theView.subviews)
{
UIView *result = resignFirstResponder(subview);
if(result) return result;
}
return nil;
}
然後在您的代碼調用:
UIView *resigned = resignFirstResponder([UIScreen mainScreen]);
在視圖控制器YourViewController.h文件,確保您實現UITextFieldDelegate協議:
@interface YourViewController : <UITextFieldDelegate>
@end
然後,在YourViewController.m文件中,執行以下實例方法:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[self.yourTextField1 resignFirstResponder];
[self.yourTextField2 resignFirstResponder];
...
[self.yourTextFieldn resignFirstResponder];
}
有些情況下,沒有文本字段是第一響應者,但鍵盤在屏幕上。 在這些情況下,上述方法無法關閉鍵盤。
一個例子,如何到達那裏:
- 推ABPersonViewController屏幕上的程序;打開任何聯繫人;
- 觸摸「筆記」字段(成爲第一響應者並觸發鍵盤);
- 在任何其他字段上向左滑動即可顯示「刪除」按鈕;
- 到此爲止,您在文本字段中沒有第一響應者(只是以編程方式檢查),但鍵盤仍然存在。調用[view endEditing:YES]什麼也不做。
在這種情況下,你還需要問視圖控制器退出編輯模式:
[viewController setEditing:NO animated:YES];
我發現那裏endEditing
和resignFirstResponder
失敗的情況。這在那些情況下適用於我。
[[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder) to:nil from:nil forEvent:nil];
[self setEditing:NO];
這將辭職一個特定的文本字段
// Swift
TextField.resignFirstResponder()
// Objective C
[TextField resignFirstResponder];
辭職下面的代碼
// Swift
self.view!.endEditing(true)
// Objective C
[self.view endEditing:YES];
-(void)textFieldDidBeginEditing:(UITextField *)textField
{
// your code
[textField reloadInputViews];
}
對於斯威夫特3
您可以隱藏鍵盤這樣的:
textField.resignFirstResponder()
如果要隱藏鍵盤,當用戶按下「前奏」按鈕,你必須實現以下UITextFieldDelegate
方法:
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
- 1. iOS - 關閉返回鍵的鍵盤
- 2. 如何關閉鍵盤?
- 3. 關閉鍵盤
- 4. 關閉鍵盤
- 5. IOS - 觸摸UIPickerView時關閉鍵盤
- 6. iOS 8.3 UiAlertView關閉蘋果鍵盤
- 7. iOS - 按下按鈕時關閉鍵盤
- 8. IOS檢測觸摸關閉鍵盤?
- 9. iOS 6:關閉鍵盤快捷方式
- 10. IOS prev/next button意外關閉鍵盤
- 11. ios上啓用和關閉鍵盤UIKeyboard
- 12. 在設置包中關閉鍵盤/數字鍵盤iOS
- 13. MFMessageComposeViewController關閉鍵盤
- 14. 關閉iPad鍵盤
- 15. 關閉UITextField鍵盤?
- 16. Android關閉鍵盤
- 17. 關閉iphone鍵盤
- 18. UIKeyboardTypeNumberPad關閉鍵盤
- 19. MonoTouch.Dialog:關閉鍵盤
- 20. 關閉鍵盤數字鍵盤
- 21. 如何關閉iOS中鍵盤首字符的自動大寫?
- 22. 如何防止React Native關閉鍵盤
- 23. 如何在TimePicker關閉鍵盤圖標?
- 24. Windows 8 - 如何關閉觸摸鍵盤?
- 25. 如何在Android SearchView中關閉鍵盤?
- 26. 如何失去而不關閉鍵盤
- 27. 如何從視圖中關閉鍵盤?
- 28. 如何同時關閉UIAlertController和鍵盤?
- 29. 如何才能關閉鍵盤的UITextField
- 30. 如何在按下DONE鍵盤時不關閉鍵盤
該死!我不敢相信我剛剛在代碼評論中被rickrolled。 – Lytol