Ios 按下return键时功能未运行
我有一个文本字段,当在文本字段中键入内容并按下键盘上的“return”时,键盘应该隐藏起来。但事实并非如此 以下是我正在使用的代码:Ios 按下return键时功能未运行,ios,swift,keyboard,textfield,Ios,Swift,Keyboard,Textfield,我有一个文本字段,当在文本字段中键入内容并按下键盘上的“return”时,键盘应该隐藏起来。但事实并非如此 以下是我正在使用的代码: import UIKit class EditTableViewController: UITableViewController, UITextFieldDelegate { var product: Product? @IBOutlet weak var productImageView: UIImageView! @IBOutlet weak var
import UIKit
class EditTableViewController: UITableViewController, UITextFieldDelegate {
var product: Product?
@IBOutlet weak var productImageView: UIImageView!
@IBOutlet weak var ProductDescriptionTextView: UITextView!
@IBOutlet weak var productTitleLabel: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
println("loaded")
productImageView.image = product?.image
productTitleLabel.text = product?.title
ProductDescriptionTextView.text = product?.description
}
override func viewWillDisappear(animated: Bool) {
product?.title = productTitleLabel.text
product?.description = ProductDescriptionTextView.text
product?.image = productImageView.image!
}
func textFieldShouldReturn(textField: UITextField) -> Bool // called when 'return' key pressed. return NO to ignore.
{
println("return")
return true
}
}
在控制台中,我得到“已加载”,但当我在文本字段中按return时,我没有得到“return”
为什么?在您的
viewDidLoad
方法中,您必须添加:
productTitleLabel.delegate = self
并更新您的textfield,返回如下内容:
func textFieldShouldReturn(textField: UITextField) -> Bool // called when 'return' key pressed. return NO to ignore.
{
productTitleLabel.resignFirstResponder()
return true
}
当按下返回键时,它将隐藏键盘。您忘记将UITextField的委托设置为视图控制器(self)
productTitleLabel.delegate=self
-还应注意正确命名变量以避免混淆(productTitleExtField
而不是“标签”后缀)
或者,您可以在序列图像板中通过Ctrl键将文本视图拖动到序列图像板中的视图控制器,并在弹出窗口中选择“委派”,而不是通过编程方式执行此操作
然后,让视图控制器符合UITextFieldDelegate
协议:
class EditTableViewController: UITableViewController, UITextFieldDelegate {
....
func textFieldShouldReturn(textField: UITextField) -> Bool {
if textField == productTitleLabel {
textField.resignFirstResponder()
}
return true
}
}
如果在故事板中没有设置文本字段委托,则需要设置文本字段委托。如果textfield中没有任何代码,则应返回隐藏键盘的
函数。这不是自动发生的。如果这是你想要的,你需要把它藏起来。