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
}