Из-за семантики некоторых вложений NSTextView в моем приложении я хочу знать, когда они будут вставлены или удалены из моего текстового хранилища.
Мой подкласс NSTextView реализует метод shouldChangeTextInRange: replaceString:, который позволяет мне легко увидеть, когда вложение собирается заменить (я могу искать в хранилище текста в указанном диапазоне).
Поскольку замещающая строка является просто NSString, а не NSAttributedString, у меня нет никакого способа увидеть из этого метода, вставляется ли вложение. В документации даже говорится, что строка может быть нулевой, если редактируются «только атрибуты».
Итак, вопрос в том, какую точку переопределения лучше всего видеть при вставке вложения? Или, может быть, так же полезно: какую точку переопределения лучше всего увидеть при изменении атрибутов?
Обновление: я сказал выше, что у меня нет возможности узнать, вставляется ли вложение. Мне было указано, что я могу сказать, что вложение "an" включено, потому что строка будет содержать магический NSAttachmentCharacter. Но у меня не будет конкретной информации о вложении до тех пор, пока редактирование не будет завершено.