我想学习在uitextview上搜索单词或字符。
我用过:rangeOfIndex(uitextfield.text)
但这只是我找到的第一个。如果uitextview包含4次相同的单词,则rangeOfIndex仅显示第一个。
谢谢。答案 0 :(得分:2)
试试这个
let searchString = "abc"
let baseString = "This is DEMO APP abc \"abc\" more th. abcabcABCAbc."
let attributed = NSMutableAttributedString(string: baseString)
var error: NSError?
let regex = NSRegularExpression(pattern: searchString, options: .CaseInsensitive, error: &error)
if let regexError = error {
println("Oh no! \(regexError)")
}
else {
for match in regex.matchesInString(baseString, options: NSMatchingOptions.allZeros, range: NSRange(location: 0, length: baseString.utf16Count)) as [NSTextCheckingResult] {
attributed.addAttribute(NSBackgroundColorAttributeName, value: UIColor.yellowColor(), range: match.range)
}
textView.attributedText = attributed
}
答案 1 :(得分:1)
要计算UITextField.text中的字符,可以使用countElements()方法。
let textfield:UITextField = UITextField()
textfield.text = "same word same word"
let count = countElements(textfield.text) // count will have value of 19
答案 2 :(得分:0)
var count = 0
let text2 = txtArama.text.lowercaseString as NSString
let text = txtMetin.text.lowercaseString as NSString
let attributedText = NSMutableAttributedString(attributedString: txtMetin.attributedText)
println("\(text.length)")
println("\(text2.length)")
var aralik:NSRange
var checker:NSString = ""
for(var i=0 ; i <= text.length - text2.length ; i++)
{
aralik = NSMakeRange(i, text2.length)
checker = text.substringWithRange(aralik)
if(text2 == checker)
{
attributedText.addAttribute(NSBackgroundColorAttributeName, value: UIColor(red: 0, green: 0.5, blue: 1, alpha: 0.2) ,
range: aralik)
txtMetin.attributedText = attributedText
count++
}
}
println("\(count)")
lblArananKelime.text = txtArama.text.lowercaseString
lblArananKelimeSayisi.text = toString(count)
我希望这可以帮助你