ios - 限制 UITextField 的字符时,“完成”按钮不起作用

标签 ios swift uitextfield

我使用下面的代码来限制用户只能在 UITextField 中使用某些字符。允许的字符位于扩展字符串内。它工作得很好,但我面临的问题是用户无法按“完成”按钮并运行我的代码。

我是 swift 和堆栈溢出的新手。我不知道该怎么办。

extension String {

    var containsValidCharacter: Bool {
        let characterSet = CharacterSet(charactersIn: "1234567890 -")
        let range = (self as NSString).rangeOfCharacter(from: characterSet)
        return range.location != NSNotFound
    }
}


func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
    return string.containsValidCharacter
}

我只想让“完成”按钮起作用。

最佳答案

尝试重写此 UITextFieldDelegate 方法。

func textFieldShouldReturn(_ textField: UITextField) -> Bool{
    return true    
}

Documentation

关于ios - 限制 UITextField 的字符时,“完成”按钮不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55512337/

相关文章:

ios - FirebaseMLVisionTextModel 已被弃用,取而代之的是 MLKitTextRecognition

iphone - 在推送 UINavigationController 时为 UIView 设置动画

ios - 打开 Watch 应用程序以配对 Apple Watch 的 URL 方案

ios - 如何计算表格 View 中的值并显示在单独的标签中

iOS 播放视频的速度超过 2 倍?

ios - 我可以在 iOS 中禁用主屏幕缩放吗?

ios - Apple Watch 上的 UIApplication.sharedApplication().beginIgnoringInteractionEvents()

ios - 如何使用文本字段和按钮将文本添加到每个单元格中?

keyboard - swift playground UITextField 产生太大的键盘

ios - 禁用 UITextField 的自动更正