gpt4 book ai didi

string - 如何计算 UITextFieldDelegate 方法中的目标字符串?

转载 作者:行者123 更新时间:2023-11-28 07:16:05 25 4
gpt4 key购买 nike

问题

在 UITextFieldDelegate 的 textField:shouldChangeCharactersInRange:replacementString 中,我们得到了 tf.text 中的原始文本、替换字符串和范围。

这些信息足以计算目标字符串(如果我们不拦截,TextField 将包含的内容),但我无法编译此代码:

func textField(
tf: UITextField,
shouldChangeCharactersInRange range: NSRange,
replacementString str: String
) -> Bool
{
var tgt = String( tf.text )
tgt.replaceRange( range.toRange(), with: str ) // PROBLEM HERE
NSLog( "realtime: %@", tgt )
return true
}

我似乎遇到的问题是,字符串的 replaceRange:with: 需要一个字符,而不是一个字符串。

也许有更好或更简单的方法来计算 tgt?

最佳答案

如果您使用 NSString 的方法,您可以做到这一点。更改方法的第一行以声明 NSMutableString 而不是 String:

func textField(tf: UITextField, shouldChangeCharactersInRange range: NSRange, 
replacementString str: String) -> Bool {
var tgt = NSMutableString()
tgt.appendString( tf.text )
tgt.replaceCharactersInRange( range, withString: str )
NSLog( "realtime: %@", tgt )
return true
}

(问题源于 NSRange 和内置的 Swift Range 实例不兼容字符串。)

关于string - 如何计算 UITextFieldDelegate 方法中的目标字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26185167/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com