NSMutableAttributedString
определяет два метода замены строк:
func replaceCharacters(in range: NSRange,
with str: String)
и
func replaceCharacters(in range: NSRange,
with attrString: NSAttributedString)
Я создал подкласс NSTextStorage
, который, в свою очередь,является подклассом NSMutableAttributedString
.В этом подклассе я переопределил оба вышеупомянутых метода.
К моему удивлению, последний метод (который передает приписанную строку замены) никогда не вызывается, когда я набираю или вставляю что-то в мое текстовое представление.Каждый раз вызывается только метод замены простой строки.
Это приводит меня к вопросу: На основании каких правил эти два метода фактически называются , когда пользователь редактирует текст в текстовом представлении?
(мне нужно выполнять различные операции в моем хранилище текста, в зависимости от того,приписанная замещающая строка содержит определенный тип текстового вложения. Но если метод замены приписанной строки никогда не вызывается, я не вижу способа сделать это различие. ?)