我已经看到其他主题回答了这个问题,但我的问题是我不明白所说的是什么,是编程的新手。我的应用程序有一个用户ID和密码文本字段,让用户使用当前凭据登录。输入数据后,我希望用户能够使键盘消失。
这就是我所做的。问题是,没有任何反应。或者,我不明白我写的是什么并且我没有正确地测试它(虽然我正在测试它,因为我希望我的新手用户,并且它没有按预期运行)。我感谢您给予的任何帮助。
这些文本字段和此按钮在ViewController类中定义:UIViewController。然后隐藏键盘的功能在ViewDidLoad
方法中。
@IBOutlet var loginEntered: UITextField!
@IBOutlet var passwordEntered: UITextField!
@IBAction func loginButtonTapped(sender: AnyObject) {
override func viewDidLoad() {
super.viewDidLoad()
self.logInError = 1
func textFieldShouldReturn(passwordEntered: UITextField!) -> Bool {
passwordEntered.resignFirstResponder()
return true
}
再次感谢你,
格雷格
答案 0 :(得分:1)
这是您的问题的一步一步的方法。我将主要向您展示故事板。
步骤1:转到左侧的Project Navigator并选择Main.stoyboard,然后选择要在其中添加文本字段和按钮的ViewController。
然后通过在Storyboard中的ViewController中的对象库中拖放来添加2个UITextfields和一个UIButton。
步骤2:在ViewController中添加文本域和按钮的IBOutlets -
Spet 3:返回故事板,选择视图控制器并单击最右侧的图标,称为连接检查器。在那里,您将看到Outlet下的文本字段和按钮名称。
现在通过单击并按住检查器中的插座来连接它们,然后从那里拖动到所需的文本字段或按钮。为所有人做到这一点。如果您错过了任何连接,那么您的代码无法确定哪个变量对应于哪个组件(TextFields或Button)。
步骤4:从故事板中选择TextField,userID,然后在Connection检查器中,您将看到名为“delegate”的Outlet(请参见下图)。这是您需要分配给ViewController的特定文本字段(userID)委托。这告诉您的Textfield,View Controller将实现其委托方法。
对“密码”TextField也这样做。将密码textField的委托连接到视图控制器后,它看起来像这样 -
现在你很高兴。
第5步: 最后,转到View Controller并添加“func textFieldShouldReturn(textField:UITextField!) - > Bool”委托方法。
这是我在我的设备中测试的完整解决方案。希望我已经说清楚了。
答案 1 :(得分:0)
只需要执行两个步骤
UITextFieldDelegate
协议,通过在您使用, UITextFieldDelegate
的继承超类旁边声明,例如,如果您的类继承自UIViewController,它将是这样的
class ViewController: UIViewController , UITextFieldDelegate
UITextFieldDelegate
协议,所以将此委托方法放在类optional func textFieldShouldReturn(_ textField: UITextField) -> Bool
中的某个位置
并返回YES
嘿,请在这里查看苹果开发者指南