我有以下格式的字符串:
有______ appels
有______奶牛和______羊
有______红色花朵,______绿色花朵和______黄色花朵
______代表字符串的可编辑部分。
这些字符串包含在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"方法,但自从" ______"字段大小各异,我无法检查特定长度"字符串"。
答案 0 :(得分:0)
使用正则表达式:
if(nextActivityObject.getJSONObject("contacts") != null){
Log.d("NEXT ACTIVITY OBJECT NOT EMPTY", "NOT EMPTY");
contacts = nextActivityObject.getJSONObject("contacts");
if(contacts.getString("phone") != null){
phone = contacts.getString("phone");
Log.d("PHONE PASSED", phone.toString());
intent.putExtra("phone",phone);
} else if(contacts.getString("email") != null){
email = contacts.getString("email");
Log.d("THIS IS THE EMAIL PASS", email.toString());
intent.putExtra("email", email);
}
}