NSMutableAttributedString上的临时属性,在编辑字符串时删除

时间:2014-06-16 21:23:07

标签: ios nsstring uitextfield jailbreak nsattributedstring

我想知道是否有办法在NSMutableAttributedString上设置属性,这些属性在编辑字符串时会消失。例如,您知道如果在iOS设备上键入一些错误的文本,它会用红色虚线加下划线(例如:“dogg”)。在这个例子中,如果你然后删除最后一个“g”,那么这个单词现在将成为“dog”,红色虚线下划线就会消失,因为它是一个有效的英文单词。如何使用自定义UITextField复制此行为?目前我使用NSMutableAttributedString为我的自定义字符串的一部分加下划线,但问题是用户可以返回,并添加文本以说明带下划线的部分的中间,并且他们键入的新文本也获得下划线。我希望我的字符串的一部分得到一个下划线,就像上面例子中的红色下划线一样,但我想要在编辑字符串的下划线部分时删除下划线。

我该怎么做?

此外,这是一个越狱调整,所以我完全愿意使用私人api。

谢谢!

1 个答案:

答案 0 :(得分:0)

两个想法。

首先,您通常不需要字符串是可变的 - 您只需要一个属性字符串,文本字段(或其他控件)将根据用户输入或其他事件来更新/替换字符串

在UITextFieldDelegate中,您通常希望使用 textField:shouldChangeCharactersInRange:replacementString: ...然后,每当用户将“dogg”更改为“dog”或其他任何内容时,您都可以重新处理用于确定要显示的属性的逻辑。