我有一個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