Почему делает - [NSTextStorage replaceCharactersInRange: withAttributedString:] иногда, иногда не соблюдают шрифты в других наборах символов?

Вам следует обратить внимание на преобразование ваших дат в стандартную метку времени Unix. Это очень легко в любой среде, в которой вы работаете (Mysql, php, javascript). Например, в javascript Date.now() возвращается текущее время как метка времени Unix. Посмотрите, как это сделать для других мест, где вы работаете со временем. Принимая это в качестве стандарта, вы можете просто передавать временные метки для ваших дат, не беспокоясь о форматировании, пока вы не будете готовы их отобразить.

5
задан Georg Schölly 24 March 2009 в 18:39
поделиться

1 ответ

Попробуйте [[textView textStorage] fixFontAttributeInRange:range]; после [[textView textStorage] replaceCharactersInRange: диапазон withAttributedString: vString] в recolorRange:

Я думаю, что проблема редактирует текстовое устройство хранения данных снова в ответ на processEditing, который уже является заключительной частью редактирования. - [NSTextStorage processEditing] использует fixFontAttributeInRange: но так как Вы пытаетесь отредактировать снова, что-то идет не так, как надо, и поведение фиксации отбрасывается.

Когда Вы делаете это для целого документа, существует нормальная последовательность beginEditing/endEditing/processEditing, которая вызывает fixFontAttributeInRange: быть названным счастливо.

5
ответ дан 14 December 2019 в 19:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: