高亮时的样式可以默认用非高亮的样式吗?

#65 · closed · 4 comments

View on GitHub ↗

dagundejuzi

用的textView,点击后默认的样式是文字变蓝并有下划线。可以改成默认使用非高亮时的样式吗? 我想着把高亮样式设置成和非高亮样式一样就可以了,然后试了好久好久……才写出来😭。 因为框架隐去了大部分参数的标签,书写方式也不太适应,xcode提示基本瘫了。 但是,一旦underline的Style设置为none,就会报错 `'none' is unavailable: use [] to construct an empty option set 和 'none' has been explicitly marked unavailable here` 代码如下: ``` "\("需要点击的文字", .foreground(.red), .action([.underline(.none)], someClick)) ```

Comments

lixiang1994

你可以试一下 ```"\("需要点击的文字", .foreground(.red), .action([], someClick))```

dagundejuzi

> 你可以试一下 `"\("需要点击的文字", .foreground(.red), .action([], someClick))` 可以了,感谢

dagundejuzi

然后我又发现了个问题,action会持有界面导致界面无法释放,但是换一下写法就能释放了。 <img width="830" alt="截屏2024-06-11 09 48 51" src="https://github.com/lixiang1994/AttributedString/assets/16382880/68fcb475-1037-4c31-8a4d-20f81c3494c5"> 直接用函数名会无法释放: `"\("需要点击的文字", .action([], someClickFunc))"` 用闭包就可以: ``` "\("需要点击的文字", .action([], { [weak self] result in // do something... }))" ```

lixiang1994

https://github.com/lixiang1994/AttributedString/issues/44 是的 会有这个问题, 我也很无奈