Как вставить NSAttributedString с помощью пользовательского расширения клавиатуры?

Я хочу писать текст в некоторых пользовательских шрифтах, используя расширение клавиатуры в качестве этих приложений (1, 2, 3, 4). Я знаю, как мы можем вставить нормальную строку в прокси-сервер документа.

    [self.textDocumentProxy insertText:mystring];

Я попытался вставить NSAttributedString, используя вышеприведенный подход, но я не вижу способа вставить NSAttributedString для документирования прокси.

Кто-нибудь может указать, что будет лучшим способом избавиться от этой проблемы? любое предложение будет оценено.

Ответ 1

Невозможно вставить атрибутные строки (или иначе богатый контент) с помощью прокси-документа текстового документа.

Клавиатуры, с которыми вы связаны, не используют пользовательские шрифты. Они используют (или злоупотребляют) символы Юникода, такие как Enclosed Alphanumerics и Закрытое буквенно-цифровое дополнение.

В других случаях разные символы алфавита с визуальным сходством с латинскими символами используются для создания "фанкового" текста, например здесь.

Наконец, некоторые расширения клавиатуры, такие как графические клавиатуры, используют картотеку для копирования богатого контента, и пользователь несет ответственность за вставку туда, где он кажется подходящим.

Ответ 2

Приложения, на которые вы ссылаетесь, не используют NSAttributedString или настраиваемые шрифты. Они просто заменяют буквы похожими символами Юникода. Вы можете увидеть эти символы в любом приложении OS X в меню Edit → Special Characters.