使用 TextView 进行用户消息输入,在用户编辑期间它是可编辑和可选择的。字段下方的按钮之一,在编辑和哈希标记模式之间切换 TextView。当切换到标记时,TextView 禁用了它的可编辑和可选属性,并且我有一个功能来检测点击并返回文本中的字符位置。
我需要确定点击的单词(如果有),并通过在 UITextView.text 中添加前缀来修改该单词 # 除非它已经有两个哈希值,否则它会删除哈希值。我正在为逻辑使用正则表达式。
我还没有找到一种高级方法来确定被点击的字符的单词。我已经搜索了Apple的Dev。库。以及像 raywenderlich 和 Grok Swift 这样的网站,但找不到我确定必须存在的方法。
我可以通过测试当前字符是否是有效的单词分隔符来实现,如果不是,则减少字符索引并测试直到确定单词边界。此时,我返回之前的索引并测试#字符,如果是#,我会测试下一个字符,如果不是#,我会在开头添加#字符这个词的。
UIKit、TextKit 或 UITextView 或 NSTextStorage 的方法中是否有一个函数可以返回被点击字符的单词和该单词的 NSRange?另外,将 # 添加到 TextView 文本的正确方法是什么?[textView:shouldChangeTextInRange:replacementText 或 textView.textStorage:replaceCharactersInRange:withString:]
我曾在 PC、PlayStation 和 GameBoy 上进行过商业工作,但这是第一次开发应用程序并使用 iPhone/Mac 平台,所以我真的可以参考建议。