如何将焦点放在文本字段上?
How to give the focus to the text field?
非常简单的设置:我有一个 ViewController 场景,上面有一个 TextField。 ViewController 是文本字段的代表。
我希望有以下行为:当用户输入文本字段(即点击它)时,我想显示一个带有确定按钮的模式警告框。用户按下 OK 后,TextField 应该获得焦点(即,光标在其中闪烁)。
我无法正常工作。我通过 textFieldShouldBeginEditing()
对用户点击文本字段做出反应。这在我可以在那里显示消息框的意义上起作用。但是在用户(在本例中是我 ;o))点击确定按钮后,文本字段没有焦点,当我再次点击它时,消息框再次出现。
我怎样才能摆脱这个?
您真的希望模式对话框显示每次 单击文本字段吗?请记住,将激活放在 textFieldShouldBeginEditing()
中意味着 re-activating 关闭对话框后的字段将 re-show 对话框。
也许您只需要显示一次对话框?在这种情况下,在第一次显示时设置一个简单的布尔标志将解决这个问题。 IE。在视图控制器范围内:
var hasShownWarningDialog = false
然后改为实施(评论后):
func textFieldShouldBeginEditing(textField: UITextField) -> Bool
{
if !hasShownWarningDialog
{
hasShownWarningDialog = true
// Create dialog here
self.present(alert, animated: true, completion: {self.textField.becomeFirstResponder()})
return false
}
else
{
return true
}
}
非常简单的设置:我有一个 ViewController 场景,上面有一个 TextField。 ViewController 是文本字段的代表。
我希望有以下行为:当用户输入文本字段(即点击它)时,我想显示一个带有确定按钮的模式警告框。用户按下 OK 后,TextField 应该获得焦点(即,光标在其中闪烁)。
我无法正常工作。我通过 textFieldShouldBeginEditing()
对用户点击文本字段做出反应。这在我可以在那里显示消息框的意义上起作用。但是在用户(在本例中是我 ;o))点击确定按钮后,文本字段没有焦点,当我再次点击它时,消息框再次出现。
我怎样才能摆脱这个?
您真的希望模式对话框显示每次 单击文本字段吗?请记住,将激活放在 textFieldShouldBeginEditing()
中意味着 re-activating 关闭对话框后的字段将 re-show 对话框。
也许您只需要显示一次对话框?在这种情况下,在第一次显示时设置一个简单的布尔标志将解决这个问题。 IE。在视图控制器范围内:
var hasShownWarningDialog = false
然后改为实施(评论后):
func textFieldShouldBeginEditing(textField: UITextField) -> Bool
{
if !hasShownWarningDialog
{
hasShownWarningDialog = true
// Create dialog here
self.present(alert, animated: true, completion: {self.textField.becomeFirstResponder()})
return false
}
else
{
return true
}
}