所以在我制作的一个小应用程序中,如果用户单击登录按钮,屏幕底部会弹出两个文本字段(用户名和密码文本字段)。现在我希望当用户单击登录按钮时键盘也自动弹出。为此,我说:
self.userNameTextField.becomeFirstResponder()
self.passwordTextField.becomeFirstResponder()
现在由于某些原因我无法单击 userNameTextField。光标始终停留在 passwordTextField 上。我认为这是因为它使密码文本字段成为第一响应者,所以它不会让我点击用户名。有没有其他方法可以在不使用 firstResponder 方法的情况下自动调出键盘?
最佳答案
通过执行您在此处描述的操作,您正在制作 userNameTextField
一个第一响应者,然后你就在做passwordTextField
急救人员——最终得到 passwordTextField
设置为第一响应者(因为 Swift 快如闪电,你甚至不会注意到 userNameTextField
成为第一响应者的那一刻)。
所以,选择你要调用的那个(可能是 self.userNameTextField.becomeFirstResponder()
因为你希望用户先输入用户名)然后你可以调用 resignFirstResponder()
(这将使 userNameTextField
在用户点击键盘上的“返回”时成为第一响应者)通过实现 UITextFieldDelegate
方法 textFieldShouldReturn
(如果您在那里需要帮助,请告诉我)然后立即调用 self.passwordTextField.becomeFirstResponder()
让你的passwordTextField
第一响应者,以便用户可以输入密码。
关于ios - 两个文本字段的第一响应者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36121502/