12
-(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;
}

我在我的应用程序的各个地方使用了辞职第一响应者。但是当我单独点击这个按钮时,键盘并没有消失。如果我点击键盘上的返回键,输入的值就会消失。

4

8 回答 8

34

如果您不知道textfield要辞职,请在您的方法中使用以下代码行:

迅速

self.view.endEditing(true)//resign current keyboard 

Objective-C

[self.view endEditing:YES]; //resign current keyboard 

编辑注意:它将resign keybord来自您当前的view.

于 2012-09-28T12:08:54.907 回答
4

check your .h file if you have put the TextFieldDelegate over there. . Some time if we not declare its delegates function doesn't work properly.

于 2012-09-28T12:22:24.250 回答
1

您必须首先使用 [UIView setAnimationDidStopSelector:@selector(yourMethod)];

然后在“ YourMethod”中退出你的键盘。

- (void)yourMethod
{
   [mileagerate resignFirstResponder];
}
于 2012-09-28T14:49:44.657 回答
1

我认为当你设置文本时, textField mileagerate 再次成为第一响应者,所以在方法的最后使用这个语句

[mileagerate resignFirstResponder];
于 2012-09-28T12:23:32.003 回答
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
            }
        }
于 2016-02-16T21:19:44.963 回答
0

确保您已连接返回键以退出第一个响应者

在连接选项卡上将连接更改为“退出时结束”并连接到视图控制器(橙色球),将键盘返回键更改为完成。

于 2012-09-28T12:03:36.560 回答
0

尝试这个:

if([mileagerate isFirstResponder])
        [mileagerate resignFirstResponder];
于 2012-09-28T12:30:41.397 回答
0

1.检查 UITextFieldDelegate ,

class YourClass : UIViewController,UITextFieldDelegate{

2.然后覆盖功能“应该结束编辑”返回到是

    func textFieldShouldEndEditing(_ textField: UITextField) -> Bool {  
    return true
}
于 2018-01-31T09:36:10.670 回答