gpt4 book ai didi

swift - 如何在 Swift 中选择具有 NSRange 的 textView 中的文本?

转载 作者:可可西里 更新时间:2023-11-01 00:59:15 26 4
gpt4 key购买 nike

我有一个 UITextView,我想在其中选择一部分文本。我正在尝试使用 selectedTextRange,不幸的是我得到了这个错误:

Cannot convert value of type 'NSRange' (aka '_NSRange') to expected argument type 'UITextRange'

这是我尝试使用的代码:

mainTextField.becomeFirstResponder()
mainTextField.selectedTextRange = mainTextField.textInRange(matchRange) // matchRange is a NSRange

我使用的范围来 self 改编自 this tutorial 的正则表达式1 :

编辑:添加了第一行

if let regex =  NSRegularExpression(options: searchOptions){ // refers to an installed extension convenience init
let range = NSMakeRange(0, (mainTextField.text.characters.count))
let matches = regex.matchesInString(mainTextField.text, options: [], range: range)
[...]

最佳答案

您可以在 UITextView 上添加一个扩展来进行转换。

    extension UITextView
{
func textRangeFromNSRange(range:NSRange) -> UITextRange?
{
let beginning = self.beginningOfDocument
guard let start = self.positionFromPosition(beginning, offset: range.location), end = self.positionFromPosition(start, offset: range.length) else { return nil}

return self.textRangeFromPosition(start, toPosition: end)
}
}

使用

    if let range = mainTextView.textRangeFromNSRange(range: matchRange){
mainTextField.selectedTextRange = range
}

其中 matchRange 是一个 NSRangerange 是一个 UITextRange

关于swift - 如何在 Swift 中选择具有 NSRange 的 textView 中的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37930360/

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