Перейти к основному содержимому

Запись содержимого в буфер обмена (pasteboard.write)

Объявление

pasteboard.write(данные [, универсальный_идентификатор_типа ])
pasteboard.write(элемент_буфера_обмена [, параметры ])
pasteboard.write(список_элементов_буфера_обмена [, параметры ])

Параметры

  • данные
    Строка; содержимое для записи в буфер обмена.
    Таблица, элемент буфера обмена: ключом является универсальный идентификатор типа, а значением — строковые данные (поддерживается начиная с версии 20260428).
    Таблица, список элементов буфера обмена; каждый элемент является элементом буфера обмена (поддерживается начиная с версии 20260428).

  • универсальный идентификатор типа
    Текст, необязательный параметр; Uniform Type Identifiers, по умолчанию "public.utf8-plain-text".

  • параметры Таблица, необязательный параметр (поддерживается начиная с версии 20260428).
    local_only — логическое значение; сохранять только на этом устройстве, поддерживается в iOS 10 и выше.
    expiration_date — число, метка времени Unix в секундах, поддерживается в iOS 10 и выше.

    Структура элемента буфера обмена
    {
    ["public.utf8-plain-text"] = "普通文本",
    ["public.rtf"] = "RTF 数据",
    ["public.html"] = "HTML 数据",
    ["public.png"] = "PNG 二进制数据",
    ...
    }

Возвращаемое значение

  • успешно
    Логическое значение: true при успешной записи, иначе false.

Описание

Записывает содержимое в системный буфер обмена.
Ключевые слова: запись в буфер обмена.
При передаче элемента или списка элементов буфера обмена в один элемент буфера обмена записываются представления в нескольких форматах. iOS 9 игнорирует параметр параметры.

Пример

pasteboard.write("hello") -- Записывает текст "hello" в буфер обмена.
--
pasteboard.write(screen.image():png_data(), 'public.png') -- Записывает снимок текущего экрана в буфер обмена.
--
pasteboard.write([[{\rtf1\ansi\deff0
{\fonttbl{\f0 Helvetica;}}
{\colortbl;\red255\green0\blue0;}
\f0\fs32 normal {\b bold} {\i italic} \cf1 red\cf0\par
\u20320?\u22909?
}]], "public.rtf") -- Записывает форматированный текст RTF в буфер обмена.

-- Начиная с версии 20260428 в один элемент буфера обмена можно записывать несколько форматов.
pasteboard.write({
["public.utf8-plain-text"] = "normal bold italic red\n你好",
["public.rtf"] = [[{\rtf1\ansi\deff0
{\fonttbl{\f0 Helvetica;}}
{\colortbl;\red255\green0\blue0;}
\f0\fs32 normal {\b bold} {\i italic} \cf1 red\cf0\par
\u20320?\u22909?
}]],
["public.html"] = [[<p>normal <b>bold</b> <i>italic</i> <span style="color:red">red</span><br>你好</p>]],
}, {
local_only = true,
expiration_date = os.time() + 3600,
})

Примечание: в приведённом коде используется функция из другой главы — screen.image.