我有一个NSRanges数组,我希望这些范围在我的UITextView中是不可变的/只读的。 但我不太确定如何将编辑限制在数组中不存在的范围。在UITextView范围内限制编辑
我试过以下。
func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool {
for range in immutableRange {
if changeRange.location == range.location {
return false
}
}
return true
}
但是,这不按预期工作。 我该如何对此进行排序,以便用户仅允许更改未包含在数组范围内的文本?
编辑:
我也使用以下尝试:
NSLocationInRange(immutableRange.location, changeRange) && NSLocationInRange(NSMaxRange(immutableRange), changeRange)
检查changeRange是否包含immutableRange,但如预期,要么没有工作。
我有以下类型的字符串:“有______红色的花,______绿色的花和______黄色的花”,其中“____”以外的所有内容都是不可变的范围。
为什么范围重叠? – rmaddy
范围不是“真实的”只是一个例子。删除,以防止混淆。 – LucasNielsen
您的'if'语句正在检查范围内的完全匹配。你需要看看'changeRange'和'range'是否重叠。 – rmaddy