Основное использование картона iPhone

Я пытаюсь добавить простой текст в iPhone Pasteboard. Следующий код, похоже, не работает:

UIPasteboard *pboard = [UIPasteboard generalPasteboard]; NSString *value = @"test"; [pboard setValue: value forPasteboardType: @"public.plain-text"]; 

Я предполагаю, что проблема заключается в аргументе типа PasteBoard. Передача @"public.plain-text" ничего не происходит. Передавая kUTTypePlainText компилятор жалуется на несовместимый тип указателя, но не падает, и ничего не происходит. Использование kUTTypePlainText также, похоже, требует связывания с MobileCoreServices , что не упоминается в документах.

Используйте этот заголовок, чтобы получить значение для kUTTypeUTF8PlainText;

 #import <MobileCoreServices/UTCoreTypes.h> 

Вы должны иметь доступную инфраструктуру MobileCoreServices.

Отвечая на комментарии и мой собственный вопрос:

  • Настройка свойства строчной строки.
  • Использование setValue:forPasteboardType: также работает, если я использую kUTTypeUTF8PlainText вместо kUTTypePlainText для типа картона.

Я не заметил свойства string, потому что я сразу же перешел к разделу «Получение и установка отдельных элементов инвентаря» .

То, как я тестировалось, – это щелкнуть текстовое поле и посмотреть, появится ли всплывающее окно.

Я все еще не уверен, где в документах объясняются типы UTT для iPhone, в том числе, где их можно получить (Framework, #include files), похоже, что документ «Единый идентификатор идентификаторов типов» по-прежнему ориентирован на Mac OS. Поскольку константы дали мне предупреждение о несоответствии типа, я думал, что делаю что-то неправильно, поэтому я сначала попытался использовать литерал NSString .

Вот мои эксперименты с вставкой текста на картон. Я использую кнопку для добавления текста программно.

 #import <MobileCoreServices/MobileCoreServices.h> - (IBAction)setPasteboardText:(id)sender { UIPasteboard *pb = [UIPasteboard generalPasteboard]; NSString *text = @"東京京都大阪"; // Works, but generates an incompatible pointer warning [pb setValue:text forPasteboardType:kUTTypeText]; // Puts generic item (not text type), can't be pasted into a text field [pb setValue:text forPasteboardType:(NSString *)kUTTypeItem]; // Works, even with non-ASCII text // I would say this is the best way to do it with unknown text [pb setValue:text forPasteboardType:(NSString *)kUTTypeText]; // Works without warning // This would be my preferred method with UTF-8 text [pb setValue:text forPasteboardType:(NSString *)kUTTypeUTF8PlainText]; // Works without warning, even with Japanese characters [pb setValue:text forPasteboardType:@"public.plain-text"]; // Works without warning, even with Japanese characters [pb setValue:text forPasteboardType:@"public.text"]; // Check contents and content type of pasteboard NSLog(@"%@", [pb items]); } 

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

  • Как скопировать данные UIImage в буфер обмена / UIPboardboard? И как это проверить?
  • Политика UIP-тары для удаления данных
  • Безопасность UIP
  • Именованный UIP-пакет между приложениями?
  • Вставить форматированный текст, а не изображения или HTML
  • Предел UIP
  • Скопируйте текст в буфер обмена через сафари и прочитайте данные буфера обмена в приложении iOS
  • копировать видео на uipboardboard
  • IOS SDK, получающий текст буфера обмена при загрузке приложения
  • Как очистить / очистить картон на viewWillDisappear
  • MFMessageComposeViewController не отображает значок камеры
  • Давайте будем гением компьютера.