internal func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool{
if let text = string{
if text == "#" || text == "$" || text == "!"{ \\and so on
return false
}
}
return true
}
func textFieldDidChange(textField: UITextField) {
if let textInField = textField.text{
if let lastChar = textInField.characters.last{
//here include more characters which you don't want user to put in the text field
if(lastChar == "*")
{
textField.text = textInField.substring(to: textInField.index(before: textInField.endIndex))
}
}
}
}
8条答案
按热度按时间nwlqm0z11#
Swift 4 iOS 11.2.x基于使用扩展名,在本例中测试字符串是否为有效的十六进制数。
它的用法与UITextFieldDelegate类似。
虽然我在以前的文章中读到过CharacterSets不支持由多个Unicode组成的字符。所以我想要小心使用。
7y4bm7vi2#
既然你明确地要求斯威夫特,我已经翻译了链接问题中的第一个问题。
vc6uscn93#
gajydyqb4#
雨燕2.3
mzsu5hc05#
因此,这可能是限制空格的最可靠方法。使用此用户将无法粘贴/键入****空格
这是您使用Swift 3实施的方式。
将下面提到的
extension
片段添加到Swift文件中;在您的
ViewController
Swift文件中,从情节提要中拖出您的Editing Changed示例和UITextField
的Referencing Outlet,如下图所示:按如下所述使用拖动的示例:
将插座引用为:
和编辑更改为:
这将在用户尝试键入/粘贴空格时检测并删除空格。
xu3bshqb6#
Swift 4 iOS 11.2.x基于使用扩展名,在本例中测试字符串是否为有效的十六进制数。
扩展字符串{
它的用法与UITextFieldDelegate类似。
g0czyy6m7#
Swift:3和一个不同的方法:
为viewDidLoad中的文本字段更改添加目标函数:
在目标函数中,简单地检测输入的字符并将其替换为空白。2我已经测试过了,它可以防止用户在文本字段中输入任何不需要的字符。
wpx232ag8#
添加@Evdzhan Mustafa所说的内容。您需要添加一个return语句,以防字符串为空。如果没有它,您将无法删除文本。修改代码如下:
Swift 3版本