我有綁定到一個NSTextView的屬性串。每次編輯字符串時,我都會使用一種稱爲(使用KVO)的方法,以根據regEx匹配向字符串添加背景顏色屬性。我通過創建一個新的可變屬性串與-initWithAttributedString:
然後-beginEditing
,,-endEditing
做到這一點。一旦我添加了所有我想要的背景顏色的屬性,我稱之爲字符串的setter [self setTextViewString:mutableAttributedString]
的問題是,如果有確實是添加到字符串的任何屬性,它殺死撤消和光標移動到字符串的結尾。保持撤消修改,束縛,NSAttributedString
我怎樣才能保持復原嗎?我通過在setter的任一側調用textView的selectedRanges和setSelectedRanges:方法來保持光標位置,但這仍然有點冒失。
我無法TextView的直接綁定到mutableattributedstring,但它好像應該是修改綁定的字符串,因此它不會弄亂編輯更直接的方式。
PS,添加屬性發生在KVO方法完成後,通過調用-performSelectorOnMainThread:
這是我可以獲取添加的屬性來顯示的唯一方法。
對不起,那是不清楚,我改成了更有意義。我有我的textview綁定到一個屬性的字符串,所以我打電話給*字符串的* setter,而不是textview本身的setter。 – 2009-10-12 20:34:41