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 

EDIT:それは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

最初の応答者を辞任するためにリターンキーを接続したことを確認してください

接続タブで、接続を「Did End On Exit」に変更し、View Controller (オレンジ色のボール) に接続して、キーボードのリターン キーを DONE に変更します。

于 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 に答える