ios - 尝试从安全文本字段文本中删除字符时,委托(delegate)方法无法正常工作

标签 ios swift

我在尝试从 protected 文本字段文本中删除字符时遇到问题。

我想捕获 textFieldShouldChangeCharactersInRange 委托(delegate)方法中的文本,但问题是对于安全的文本字段存在问题。 当我点击安全文本字段并从文本字段的文本中删除字符时,所有文本字段文本在视觉上都会消失(默认情况下,这是安全文本字段的情况)。

问题在于,textFiledShouldChangeCharactersInRange中返回的文本不是空文本,而是没有删除字符的文本。所以问题是,从视觉上看,文本字段中没有留下任何文本,但上面提到的委托(delegate)方法返回的文本不是 nil,也不是空。

我想问是否有可能捕获正确的文本。

如果有不清楚的地方请询问,我会回复。

非常感谢!

最佳答案

试试这个

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool
{
    if let swRange = textField.text!.rangeFromNSRange(range)
    {
        let newString = textField.text!.stringByReplacingCharactersInRange(swRange,withString:string) //...
        print(newString)
    }
    return true
}

方法rangeFromNSRange(range)可以在这里找到NSRange to Range<String.Index>

希望对你有帮助

关于ios - 尝试从安全文本字段文本中删除字符时,委托(delegate)方法无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38630345/

相关文章:

ios - Apple单例代码警告......再次

ios - iOS 应用程序似乎可以使用 ARC 并支持 iOS 4.3 或 4.x,但如果使用 "weak"引用则不行?

ios - 如何在 iOS 中使用 UIDocument 获取远程文档?

ios - 将数据从 TodayExtension 传递到应用程序

ios - 加载 tableView 后停止事件指示器

ios - 在 ios8 中使用 appdelegate 暂停 spritekit 游戏

swift - SwiftUI 中的匹配几何效果不起作用

iOS/FBSDK - FBSDKProfile 在设备上为零,在模拟器上工作正常

ios - 当用户添加新联系人时更新应用程序核心数据/Realm

ios - 在 ios 中从不同的 View Controller (不同时间)多次调用相同的 Web 服务