ios - 鍵盤wiki - 如何快速按回車鍵隱藏鍵盤?




鍵盤return (10)

迅速

使用來自UITextFieldDelegate可選功能。

func textFieldShouldReturn(_ textField: UITextField) -> Bool {
    return textField.endEditing(false)
}

false意味著可以要求辭職。 true力量辭職。

我正在使用UITextfied同時單擊顯示的內容的鍵盤上,但是當我按下返回鍵時,鍵盤不會消失。我使用下面的代碼。

func textFieldShouldReturn(textField: UITextField!) -> Bool // called when 'return' key pressed. return NO to ignore.
{
    return true;
}

該方法resignfirstresponder不起作用。


@RSC

對我來說,Xcode版本6.2(6C86e)中的關鍵補充是override func viewDidLoad()

 self.input.delegate = self;

試圖讓它與返回鍵一起工作幾個小時,直到我找到你的帖子,RSC。 謝謝!

另外,如果你想隱藏鍵盤,如果你觸摸屏幕上的其他任何地方:

override func touchesBegan(touches: NSSet, withEvent event: UIEvent) { self.view.endEditing(true); }


你可以把它放在任何地方,但不能放在UIButton中

 func TextFieldEndEditing(text fiend name: UITextField!) -> Bool
{
    return (false)
}

那麼你可以把這個代碼放在一個按鈕中(例如):

self.view.endEditing(true)

這對我有效


另一種主要使用故事板的方法可以讓您擁有多個文本字段:

@IBAction func resignKeyboard(sender: AnyObject) {
    sender.resignFirstResponder()
}

將該視圖控制器的所有文本字段連接到每個字段的Did End On Exit事件上的動作。


您可以使用以下功能讓應用關閉鍵盤

    func textFieldShouldReturn(_ textField: UITextField) -> Bool {
        self.view.endEditing(true)
        return false
    }

下面是一個完整的例子來更好地說明:

//
//  ViewController.swift
//
//

import UIKit

class ViewController: UIViewController, UITextFieldDelegate {

    @IBOutlet var myTextField : UITextField

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        self.myTextField.delegate = self;
    }

    func textFieldShouldReturn(_ textField: UITextField) -> Bool {
        self.view.endEditing(true)
        return false
    }
}

代碼來源: http://www.snip2code.com/Snippet/85930/swift-delegate-sample : http://www.snip2code.com/Snippet/85930/swift-delegate-sample


我會申請從RSC初始化類:

import Foundation
import UIKit

// Don't forget the delegate!
class ViewController: UIViewController, UITextFieldDelegate {

required init(coder aDecoder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
}

@IBOutlet var myTextField : UITextField?

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

    self.myTextField.delegate = self;
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

func textFieldShouldReturn(textField: UITextField!) -> Bool {
    self.view.endEditing(true);
    return false;
}

}


為了自動取消鍵盤,我把這段代碼放入我的自定義文本字段類的一個方法中:

textField.addTarget(nil, action:"firstResponderAction:", forControlEvents:.EditingDidEndOnExit)

用您的插座的名稱替換textField


當用戶點擊文本鍵盤上的“完成”按鈕時,將會生成“退出結束”事件; 那時候,我們需要告訴文本字段放棄控制,這樣鍵盤就會消失。 為了做到這一點,我們需要在控制器類中添加一個動作方法。 選擇ViewController.swift添加以下操作方法:

@IBAction func textFieldDoneEditing(sender: UITextField) {
sender.resignFirstResponder()}

在Project Navigator中選擇Main.storyboard並調出連接檢查器。 從Did End On Exit旁邊的圓圈拖動到故事板中的黃色View Controller圖標,然後鬆手。 一個小的彈出式菜單將出現,其中包含一個動作的名稱,即我們剛剛添加的動作。 點擊textFieldDoneEditing動作來選擇它,就是這樣。


簡單的Swift 3解決方案:將此功能添加到具有文本字段的視圖控制器中:

@IBAction func textField(_ sender: AnyObject) {
    self.view.endEditing(true);
}

然後打開助手編輯器,確保Main.storyboard位於視圖的一側,並且所需的視圖controller.swift文件位於另一側。 點擊文本字段,然後從右側的實用程序面板中選擇“顯示連接檢查器”選項卡。 在你的swift文件中控制從'退出結束'拖動到上面的函數。 重複該場景中的任何其他文本字段並鏈接到相同的功能。


這只返回真正的部分只告訴文本字段是否允許返回。 您必須手動指示文本字段關閉鍵盤(或者它的第一個響應者),然後通過調用resignFirstResponder()

func textFieldShouldReturn(textField: UITextField) -> Bool // called when 'return' key pressed. return false to ignore.
{
    textField.resignFirstResponder()
    return true
}




uitextfield