在 IOS 中需要一个 searchText 荧光笔

脑筋急转弯

我正在使用“UITextField”作为搜索框的应用程序中工作。当用户在带有部分的 uitextfield UiTableView 中输入搜索文本时将显示结果,但我需要突出显示在 tableview 的文本字段中输入的文本。我使用了属性文本,但它只能在一个范围内使用。所以请帮我一个实现荧光笔的想法。

myMutableString = NSMutableAttributedString(string: contactsList.familyName + contactsList.givenName, attributes: [NSAttributedStringKey.font:UIFont(name: "Catamaran", size: 14.0)!])
        if contactsList.familyName.count >= 4 {
            myMutableString.addAttribute(NSAttributedStringKey.foregroundColor, value: UIColor.black, range: NSRange(location:0,length:4))
        }else {
            myMutableString.addAttribute(NSAttributedStringKey.foregroundColor, value: UIColor.black, range: NSRange(location:0,length:2))
        }
        cell?.profileName.attributedText = myMutableString
s3cretshadow

我试图改变前景色,但它只是改变文本颜色而不是背景颜色。我不知道这是否是正确的解决方案,但您可以尝试这样的方法。

如果我正确理解您的问题,则突出显示文本字段

全局添加标签

let label = UILabel()

在 viewDidLoad 中设置标签框架

label.frame.size = CGSize(width: 10, height: textfield.frame.size.height)// your settings width should be 10 or smaller
label.font = UIFont(name: "Halvetica", size: 14)
label.backgroundColor = UIColor.red

将文本字段文本颜色设置为文本字段背景颜色

textfield.textColor = UIColor.white

像这样添加 textFieldEditingChanged 方法:

  @IBAction func changed(_ sender: Any) {

    label.removeFromSuperview()


    label.text = textfield.text

    textfield.addSubview(label)
    label.sizeToFit()
}

不要忘记将标签和文本字段字体设置为相同。如果不这样做,文本字段光标可能会出现在标签的后面或前面

更新:您应该使用 html 创建属性字符串

extension String {
var html2AttributedString: NSAttributedString? {
    do {
        return try NSAttributedString(data: Data(utf8),
                                      options: [.documentType: NSAttributedString.DocumentType.html,
                                                .characterEncoding: String.Encoding.utf8.rawValue],
                                      documentAttributes: nil)
    } catch {
        print("error: ", error)
        return nil
    }
}
var html2String: String {
    return html2AttributedString?.string ?? ""
}// you can find several way to do this just google it

}

数据源:

var dataSource = ["foo","foo1","foo2","foo3","foo4","foo5","foo6"]

为在数据源字符串范围内找到的结果索引创建变量

var indexes : [Int:Range<String.Index>] = [:]

cellForRowAt:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
    let string = dataSource[indexPath.row]
    cell.textLabel?.attributedText = string.html2AttributedString

    return cell
}

搜索文本编辑更改:

@IBAction func change(_ sender: UITextField) {
    indexes.removeAll()
    dataSource = ["foo","foo1","foo2","foo3","foo4","foo5","foo6"] // assign datasource again
    for i in 0..<dataSource.count {
        if let textRange = dataSource[i].range(of: textField.text!) {
            indexes[i] = textRange
        }
    }
    for (index,entry) in indexes {

        let highlighted = "<text style='background-color:#FFFF00';>\(dataSource[index][entry])</text>"
        dataSource[index].replaceSubrange(entry, with: highlighted)
    }
    tableView.reloadData()
}

经过一些搜索,您应该在 html 中更改字体和大小。 结果

希望这可以帮助

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

CSS中的笔荧光笔效果

来自分类Dev

制作一个php regex代码synthax荧光笔

来自分类Dev

在Ace编辑器中执行搜索时,荧光笔不会跳到正确的找到的结果

来自分类Dev

更改搜索值时刷新/更新JTable中的荧光笔

来自分类Dev

在Vimscript中,是否可以访问语法荧光笔已知的信息?

来自分类Dev

python tkinter文本小部件中的Pygments语法荧光笔

来自分类Dev

如何永久更改Adobe Acrobat Reader DC中的荧光笔颜色?

来自分类Dev

在Vimscript中,是否可以访问语法荧光笔已知的信息?

来自分类Dev

python tkinter文本小部件中的Pygments语法荧光笔

来自分类Dev

使Lucene.net荧光笔仅显示特定字段中的匹配项

来自分类Dev

查询中的双通配符导致普通/快速向量elasticsearch荧光笔的高亮显示

来自分类Dev

在rangy中创建荧光笔时使用除文档以外的任何其他元素

来自分类Dev

Cairo GTK用透明笔画一条线(就像荧光笔一样)

来自分类Dev

有没有一种方法可以在keydown的语法荧光笔中的代码上触发dblclik事件?

来自分类Dev

语法荧光笔不起作用

来自分类Dev

增加荧光笔返回的文本的长度

来自分类Dev

Elasticsearch 荧光笔误报

来自分类Dev

自定义荧光笔

来自分类Dev

HTML Canvas - 创建荧光笔效果

来自分类Dev

荧光笔混合功能 OpenGL

来自分类Dev

语法荧光笔:找不到XML笔刷

来自分类常见问题

使用荧光笔时看不到工具提示

来自分类Dev

荧光笔addHighlight不会更改文本颜色

来自分类Dev

使用Bootstrap Typeahead进行荧光笔替代

来自分类Dev

Resharper Quickfix荧光笔偏移量问题

来自分类Dev

Web代码的语法荧光笔,例如html,php,css

来自分类Dev

weava荧光笔扩展如何在后台运行?

来自分类Dev

语法荧光笔的可访问HTML结构

来自分类Dev

jqplot CategoryAxisRenderer荧光笔工具提示输出错误

Related 相关文章

  1. 1

    CSS中的笔荧光笔效果

  2. 2

    制作一个php regex代码synthax荧光笔

  3. 3

    在Ace编辑器中执行搜索时,荧光笔不会跳到正确的找到的结果

  4. 4

    更改搜索值时刷新/更新JTable中的荧光笔

  5. 5

    在Vimscript中,是否可以访问语法荧光笔已知的信息?

  6. 6

    python tkinter文本小部件中的Pygments语法荧光笔

  7. 7

    如何永久更改Adobe Acrobat Reader DC中的荧光笔颜色?

  8. 8

    在Vimscript中,是否可以访问语法荧光笔已知的信息?

  9. 9

    python tkinter文本小部件中的Pygments语法荧光笔

  10. 10

    使Lucene.net荧光笔仅显示特定字段中的匹配项

  11. 11

    查询中的双通配符导致普通/快速向量elasticsearch荧光笔的高亮显示

  12. 12

    在rangy中创建荧光笔时使用除文档以外的任何其他元素

  13. 13

    Cairo GTK用透明笔画一条线(就像荧光笔一样)

  14. 14

    有没有一种方法可以在keydown的语法荧光笔中的代码上触发dblclik事件?

  15. 15

    语法荧光笔不起作用

  16. 16

    增加荧光笔返回的文本的长度

  17. 17

    Elasticsearch 荧光笔误报

  18. 18

    自定义荧光笔

  19. 19

    HTML Canvas - 创建荧光笔效果

  20. 20

    荧光笔混合功能 OpenGL

  21. 21

    语法荧光笔:找不到XML笔刷

  22. 22

    使用荧光笔时看不到工具提示

  23. 23

    荧光笔addHighlight不会更改文本颜色

  24. 24

    使用Bootstrap Typeahead进行荧光笔替代

  25. 25

    Resharper Quickfix荧光笔偏移量问题

  26. 26

    Web代码的语法荧光笔,例如html,php,css

  27. 27

    weava荧光笔扩展如何在后台运行?

  28. 28

    语法荧光笔的可访问HTML结构

  29. 29

    jqplot CategoryAxisRenderer荧光笔工具提示输出错误

热门标签

归档