Есть ли способ отфильтровать NSPasteboard для того, что приложение-источник специально заявило, что оно предоставит?
Я пытаюсь сериализовать данные из картона в моем приложении. Когда другое приложение помещает RTF-файл на монтажную панель, а затем я спрашиваю о доступных типах, я получаю одиннадцать различных разновидностей RTF - от исходного RTF до простых строк и до значений dyn. *.
Сохранение всех этих данных в plist или необработанные данные на диске обычно не является проблемой, так как оно довольно маленькое, но когда изображение любого значительного размера помещается на монтажную панель, результирующий вывод может быть в десятки раз больше чем исходные данные (с помощью фильтрации доступны различные разновидности данных TIFF и PICT).
Я хотел бы просто иметь возможность сэкономить на том, что исходное приложение сделало доступным, если это возможно.
Джон, ты гораздо более наблюдателен, чем я или джентльмен, с которым я работаю, который занимался программированием на Mac с тех пор, как динозавры бродили по земле. Никто из нас никогда не замечал текст, который вы выделили ... и я понятия не имею, почему. Слишком долгое рассмотрение проблемы, по-видимому.
И хотя я принял ваш ответ как правильный ответ, он не совсем отвечает на мой первоначальный вопрос. То, что я искал, было способом идентифицировать ароматы, которые могут стать другими ароматами, просто поместив их на картон И , чтобы узнать, какой из этих типов был первоначально предложен поставщиком. Хотя при просмотре списка типов я получу предпочтительный порядок для приложения, которое их предоставило, он не скажет мне, какие из них я могу безопасно проигнорировать, поскольку они будут воссозданы при повторном заполнении картона позже.
Я пришел к выводу, что не существует «хорошего» способа сделать это. [NSPasteboard declaredTypesFromOwner]
было бы невероятно, но его не существует.