Pular para o conteúdo principal

Gravar conteúdo na área de transferência (pasteboard.write)

Declaração

pasteboard.write(dados [, identificador_de_tipo_uniforme ])
pasteboard.write(item_da_area_de_transferencia [, opcoes ])
pasteboard.write(lista_de_itens_da_area_de_transferencia [, opcoes ])

Parâmetros

  • dados
    String; conteúdo a ser gravado na área de transferência.
    Tabela; item da área de transferência, com identificador de tipo uniforme como chave e dados do tipo string como valor (compatível a partir da versão 20260428).
    Tabela; lista de itens da área de transferência, em que cada item é um item da área de transferência (compatível a partir da versão 20260428).

  • identificador de tipo uniforme
    Texto, parâmetro opcional, Uniform Type Identifiers; o padrão é "public.utf8-plain-text".

  • opções Tabela, parâmetro opcional (compatível a partir da versão 20260428).
    local_only booleano; mantém os dados apenas neste dispositivo, compatível com iOS 10 e posterior.
    expiration_date número; timestamp Unix em segundos, compatível com iOS 10 e posterior.

    Estrutura do item da área de transferência
    {
    ["public.utf8-plain-text"] = "普通文本",
    ["public.rtf"] = "RTF 数据",
    ["public.html"] = "HTML 数据",
    ["public.png"] = "PNG 二进制数据",
    ...
    }

Valor de retorno

  • sucesso
    Booleano; retorna true quando a gravação é bem-sucedida e false caso contrário.

Descrição

Grava conteúdo na área de transferência do sistema.
Palavras-chave: gravar na área de transferência, gravar na área de recorte, gravar na área de colagem.
Ao receber um item ou uma lista de itens da área de transferência, grava representações em vários formatos no mesmo item. O iOS 9 ignora o parâmetro opções.

Exemplo

pasteboard.write("hello") -- grava o texto "hello" na área de transferência
--
pasteboard.write(screen.image():png_data(), 'public.png') -- grava a captura de tela atual na área de transferência
--
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") -- grava texto formatado RTF na área de transferência

-- a partir da versão 20260428, é possível gravar vários formatos no mesmo item da área de transferência
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,
})

Nota: o código acima usa a função screen.image, que não pertence a este capítulo.