-(IBAction)settings:(id)sender
{
[mileagerate resignFirstResponder];
[mainView bringSubviewToFront:mileageView];
mainView.hidden=TRUE;
[UIView beginAnimations:@"Settings" context:nil];
[UIView setAnimationDuration:1.0];
[mainView setFrame:CGRectMake(0, 0, 320, 460)];
[UIView commitAnimations];
mileagerate.text = [[NSUserDefaults standardUserDefaults] valueForKey:@"savedstring"];
mileageView.hidden=FALSE;
}
我在我的应用程序的各个地方使用了resign第一响应者。但是当我单独点击此按钮时,键盘不会消失。如果我点击键盘上的返回键,输入的值就会消失。
答案 0 :(得分:28)
如果您不知道要辞职的textfield
,请使用方法中的以下代码行:
self.view.endEditing(true)//resign current keyboard
[self.view endEditing:YES]; //resign current keyboard
编辑:注意:它将从您当前的resign keybord
view
开始。
答案 1 :(得分:4)
检查.h文件是否已将 TextFieldDelegate 放在那里。 。有些时候,如果我们不声明其委托功能不能正常工作。
答案 2 :(得分:1)
我认为在设置文本时,textField里程数再次成为第一响应者,所以在方法的最后使用此语句
[mileagerate resignFirstResponder];
答案 3 :(得分:1)
你必须先使用一个
[UIView setAnimationDidStopSelector:@selector(yourMethod)];
然后在“YourMethod
”中重新设置键盘。
- (void)yourMethod
{
[mileagerate resignFirstResponder];
}
答案 4 :(得分:1)
在Swift 2中,您可以使用以下3种不同类型来消除键盘(假设有一个文本字段和一个按钮
import UIKit
class ViewController: UIViewController, UITextFieldDelegate {
@IBOutlet var userInputField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
//Important if you are using textfieldDelegate
self.userInputField.delegate = self
}
@IBAction func findAgeBtn(sender: UIButton) {
//1. keyboard to disappear when button clicked
dimissKeyboard()
}
//2. keyboard to disappear when touched anywhere on the view
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
self.view.endEditing(true)
}
//Function for option 1
func dimissKeyboard(){
self.view.endEditing(true)
}
//3. keyboard to disappear when clicked on the Return key. Don't forget to set the delegate to self
func textFieldShouldReturn(textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
}
答案 5 :(得分:0)
确保已连接返回键以重新签名第一个repsonder
在连接选项卡上将连接更改为“退出时结束”并连接到视图控制器(橙色球)将键盘返回键更改为完成。
答案 6 :(得分:0)
试试这个:
if([mileagerate isFirstResponder])
[mileagerate resignFirstResponder];
答案 7 :(得分:0)
1.检查UITextFieldDelegate,
class YourClass : UIViewController,UITextFieldDelegate{
2.然后覆盖功能&#34;应该结束编辑&#34;将其返回到是
func textFieldShouldEndEditing(_ textField: UITextField) -> Bool {
return true
}