检测是不是在 UITextField 中输入了“空格”,并移动到下一个 UITextField
Posted
技术标签:
【中文标题】检测是不是在 UITextField 中输入了“空格”,并移动到下一个 UITextField【英文标题】:Detecting if a "space" has been typed in a UITextField, and moving to a next UITextField检测是否在 UITextField 中输入了“空格”,并移动到下一个 UITextField 【发布时间】:2016-03-07 19:19:34 【问题描述】:我是 Swift 新手,我正在将一个小表单实现为解决方案。我有三个 UITextFields,我想这样做,如果我输入一个单词然后输入“空格键”,光标将移动到下一个 UITextField(即它会阻止你在该字段中输入多个单词) .
如果我要这样做,我会怎么做?
我想我应该覆盖
textField(_:shouldChangeCharactersInRange:replacementString:)
方法 - 这是正确的吗?
谢谢!
【问题讨论】:
看起来很合理。你为什么不试试呢?这就是我们大多数人解决这些问题的方式。 另外,一定要考虑如果范围在当前字符串的中间和/或replacementString
被粘贴并包含一个空格,你想要做什么。
我认为这可能是错误的方法,因为我不想更改字符,只是在按空格键时阻止添加更多字符。 @菲利普米尔斯
【参考方案1】:
试试这个
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool
// Get your textFields text
let str = (textField.text! as NSString).stringByReplacingCharactersInRange(range, withString: string)
// Check if the last character is a space
// If true then move to the next textfield
if str.characters.last! == " "
print("SPACE!")
textField2.becomeFirstResponder()
else
print(str.characters.last!)
return true
【讨论】:
嗨,Rashwan,感谢您的回答。我将在此基础上进行构建 - 它适用于第一个单词,但当我转到下一个单词时会引发异常 - (我正在使用三个 UITextFields)。 你确定所有的文本字段代表都设置了吗? @neX,我为您创建了一个示例项目,您可以使用它。你可以下载它here。【参考方案2】:试试这个,
@IBOutlet weak var textField1: UITextField!
@IBOutlet weak var textField2: UITextField!
@IBOutlet weak var textField3: UITextField!
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool
let str = (textField.text! as NSString).stringByReplacingCharactersInRange(range, withString: string)
if str.characters.last! == " “
if textField == textField1
textField2.becomeFirstResponder()
else if textField == textField2
textField3.becomeFirstResponder()
else if textField == textField3
// do what you want
return true
【讨论】:
以上是关于检测是不是在 UITextField 中输入了“空格”,并移动到下一个 UITextField的主要内容,如果未能解决你的问题,请参考以下文章
检测用户何时在 UITableViewCell 中输入 UITextField
如何从 UITextField 中的外部键盘检测“命令+退格”
如何在不输入的情况下检测 UITextField 光标移动?
UITextField - 检测内置 iPhone 键盘上的输入?