【发布时间】:2015-10-02 13:17:45
【问题描述】:
我有一些格式如下的字符串:
有______个上诉
有 ______ 头牛和 ______ 只羊
有______红花,______绿花和______黄花
其中 ______ 代表字符串的可编辑部分。
这些字符串包含在 UITextView 中,但我只希望 ______ 字段是可编辑的,而其余字符串是只读的。
我已尝试实现 "textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String)" 方法,以便将编辑限制在 ______ 存在的范围内。但是我在计算______字符串的范围时遇到了一些麻烦。
我对 UITextView 进行了子类化,添加了一个变量:
var characterWhereEditIsAllowed: Character = "_"
并尝试计算从“characterWhereEditIsAllowed”第一次出现到最后一次出现的范围,如下所示:
guard let editableChracter = editableCharacter else {
return
}
guard let idx = text.characters.indexOf(editableChracter) else {
return
}
editableCharacterStartIndex = text.startIndex.distanceTo(idx)
我在 textview 文本中找不到最后一次出现“_”的索引。感谢您的帮助。
P.S:我尝试过使用“rangeOfString”方法,但由于“______”字段的大小不同,我无法检查特定长度的“字符串”。
【问题讨论】:
-
如何使用正则表达式查找所有不同长度的“_”实例?
NSRegularExpression将返回一个范围数组。
标签: ios swift uitextview