1 # PasteButton
2 
3 安全控件的粘贴按钮,用户通过点击该粘贴按钮,可以临时获取读取剪贴板权限。
4 
5 > **说明:**
6 >
7 > 该组件从API Version 10开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
8 
9 ## 子组件
10 
11 不支持。
12 
13 ## 接口
14 
15 ### PasteButton
16 
17 PasteButton()
18 
19 默认创建带有图标、文本、背景的粘贴按钮。
20 
21 为避免控件样式不合法导致授权失败,请开发者先了解安全控件样式的[约束与限制](../../../security/AccessToken/security-component-overview.md#约束与限制)。
22 
23 **原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
24 
25 **系统能力:** SystemCapability.ArkUI.ArkUI.Full
26 
27 ### PasteButton
28 
29 PasteButton(options:PasteButtonOptions)
30 
31 创建包含指定元素的粘贴按钮。
32 
33 为避免控件样式不合法导致授权失败,请开发者先了解安全控件样式的[约束与限制](../../../security/AccessToken/security-component-overview.md#约束与限制)。
34 
35 **原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
36 
37 **系统能力:** SystemCapability.ArkUI.ArkUI.Full
38 
39 **参数:**
40 
41 | 参数名 | 类型 | 必填 | 说明 |
42 | -------- | -------- | -------- | -------- |
43 | options | [PasteButtonOptions](#pastebuttonoptions) | 是 | 创建包含指定元素的粘贴按钮。<br/>默认值:<br/>{<br/>icon: PasteIconStyle.LINES,<br/>text: PasteDescription.PASTE,<br/>buttonType: ButtonType.Capsule <br/>} |
44 
45 ## PasteButtonOptions
46 
47 用于指定粘贴按钮的图标、文本等指定元素。
48 
49 > **说明:**
50 >
51 > - icon或text需至少传入一个。<br>
52 > - 如果icon、text都不传入,[PasteButton](#pastebutton-1)中的options参数不起效,创建的PasteButton为默认样式,默认样式:
53 >
54 >   PasteIconStyle默认样式为LINES;
55 >
56 >   PasteDescription默认样式为PASTE;
57 >
58 >   ButtonType默认样式为Capsule。
59 > - icon、text、buttonType不支持动态修改。
60 
61 **原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
62 
63 **系统能力:** SystemCapability.ArkUI.ArkUI.Full
64 
65 | 名称 | 类型 | 必填 | 说明 |
66 | -------- | -------- | -------- | -------- |
67 | icon | [PasteIconStyle](#pasteiconstyle枚举说明) | 否 | 设置粘贴按钮的图标风格。<br/>不传入该参数表示没有图标。 |
68 | text | [PasteDescription](#pastedescription枚举说明) | 否 | 设置粘贴按钮的文本描述。<br/>不传入该参数表示没有文字描述。 |
69 | buttonType | [ButtonType](ts-basic-components-button.md#buttontype枚举说明) | 否 | 设置粘贴按钮的背景样式。<br/>不传入该参数,系统默认提供Capsule类型按钮。 |
70 
71 ## 属性
72 
73 不支持通用属性,仅继承[安全控件通用属性](ts-securitycomponent-attributes.md#属性)。
74 
75 ## PasteIconStyle枚举说明
76 
77 **原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
78 
79 **系统能力:** SystemCapability.ArkUI.ArkUI.Full
80 
81 | 名称 | 值 | 说明 |
82 | -------- | -------- | -------- |
83 | LINES | 0 | 粘贴按钮展示线条样式图标。 |
84 
85 ## PasteDescription枚举说明
86 
87 **原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
88 
89 **系统能力:** SystemCapability.ArkUI.ArkUI.Full
90 
91 | 名称 | 值 | 说明 |
92 | -------- | -------- | -------- |
93 | PASTE | 0 | 粘贴按钮的文字描述为“粘贴”。 |
94 
95 ## PasteButtonOnClickResult枚举说明
96 
97 **原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
98 
99 **系统能力:** SystemCapability.ArkUI.ArkUI.Full
100 
101 | 名称 | 值 | 说明 |
102 | -------- | -------- | -------- |
103 | SUCCESS | 0 | 粘贴按钮点击成功。 |
104 | TEMPORARY_AUTHORIZATION_FAILED | 1 | 粘贴按钮点击后权限授权失败。 |
105 
106 ## 事件
107 
108 不支持通用事件,仅支持以下事件:
109 
110 ### onClick
111 
112 onClick(event: (event: ClickEvent, result: PasteButtonOnClickResult) =&gt; void)
113 
114 点击动作触发该回调
115 
116 **原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
117 
118 **系统能力:** SystemCapability.ArkUI.ArkUI.Full
119 
120 **参数:**
121 
122 | 参数名 | 类型                   | 必填 | 说明                   |
123 |------------|------|-------|---------|
124 | event  | [ClickEvent](ts-universal-events-click.md#clickevent对象说明) |是 |见ClickEvent对象说明|
125 | result | [PasteButtonOnClickResult](#pastebuttononclickresult枚举说明)| 是 | 剪贴板权限的授权结果,授权后可以读取当前剪贴板内容。|
126 
127 ## 示例
128 
129 ```ts
130 // xxx.ets
131 @Entry
132 @Component
133 struct Index {
134   build() {
135     Row() {
136       Column({space:10}) {
137         // 默认参数下,图标、文字、背景都存在
138         PasteButton().onClick((event: ClickEvent, result: PasteButtonOnClickResult)=>{
139           console.info("result " + result)
140         })
141         // 传入参数即表示元素存在,不传入的参数表示元素不存在,如果不传入buttonType,会默认添加ButtonType.Capsule配置,显示图标+背景。
142         PasteButton({icon:PasteIconStyle.LINES})
143         // 只显示图标+背景,如果设置背景色高八位的α值低于0x1A,则会被系统强制调整为0xFF
144         PasteButton({icon:PasteIconStyle.LINES, buttonType:ButtonType.Capsule})
145           .backgroundColor(0x10007dff)
146         // 图标、文字、背景都存在,如果设置背景色高八位的α值低于0x1A,则会被系统强制调整为0xFF
147         PasteButton({icon:PasteIconStyle.LINES, text:PasteDescription.PASTE, buttonType:ButtonType.Capsule})
148         // 图标、文字、背景都存在,如果设置宽度小于当前属性组合下允许的最小宽度时,宽度仍为设置值,此时按钮文本信息会自动换行,以保证安全控件显示的完整性。
149         PasteButton({icon:PasteIconStyle.LINES, text:PasteDescription.PASTE, buttonType:ButtonType.Capsule})
150           .fontSize(16)
151           .width(30)
152         // 图标、文字、背景都存在,如果设置宽度小于当前属性组合下允许的最小宽度时,宽度仍为设置值,此时按钮文本信息会自动换行,以保证安全控件显示的完整性。
153         PasteButton({icon:PasteIconStyle.LINES, text:PasteDescription.PASTE, buttonType:ButtonType.Capsule})
154           .fontSize(16)
155           .size({width: 30, height: 30})
156         // 图标、文字、背景都存在,如果设置宽度小于当前属性组合下允许的最小宽度时,宽度仍为设置值,此时按钮文本信息会自动换行,以保证安全控件显示的完整性。
157         PasteButton({icon:PasteIconStyle.LINES, text:PasteDescription.PASTE, buttonType:ButtonType.Capsule})
158           .fontSize(16)
159           .constraintSize({minWidth: 0, maxWidth: 30, minHeight: 0, maxHeight: 30})
160       }.width('100%')
161     }.height('100%')
162   }
163 }
164 ```
165 
166 ![zh-cn_image_0000001593677984](figures/zh-cn_image_0000001593677984.png)
167