我有UIAlertController一个UITextField和一个提交按钮.代码如下所示:
let saveDialogue = UIAlertController(title: "Save Level",
message: "",
preferredStyle: .Alert)
let saveAction = UIAlertAction(title: "Save", style: .Default,
handler: { (action) in
let textfield = saveDialogue.textFields![0] as UITextField
// do something with the textfield
}
)
saveAction.enabled = false
saveDialogue.addTextFieldWithConfigurationHandler { (textField) in
textField.placeholder = "My Level"
textField.text = filename
// conditionally enable the button
textField.addTarget(self, action: "textChanged:", forControlEvents: .EditingChanged)
}
Run Code Online (Sandbox Code Playgroud)
虽然无法点击按钮,但点击键盘上的返回键会触发默认操作(saveAction).
有没有解决的办法?我还尝试验证处理程序中的textfield值,但视图将被取消.可以保留吗?
如果要忽略返回键输入,请设置textField的委托并在textFieldShouldReturn:委托方法中返回false .
如下:
saveDialogue.addTextFieldWithConfigurationHandler { (textField) in
textField.placeholder = "My Level"
textField.text = "hello"
// conditionally enable the button
textField.addTarget(self, action: "textChanged:", forControlEvents: .EditingChanged)
// Add this line
textField.delegate = self
}
func textFieldShouldReturn(textField: UITextField) -> Bool {
return false
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1210 次 |
| 最近记录: |