# 为输入框设置自定义的文本选择工具 # 什么是文本选择工具 在文本选择工具用于快速为输入框填写特定的内容。
![image.png](https://cdn.nlark.com/yuque/0/2023/png/272392/1699579057798-3d218521-1afb-47fb-a005-fdc06dff8e32.png#averageHue=%23f2f2f2&clientId=ud4b8a4b7-60d6-4&from=paste&height=263&id=ua0387fd1&originHeight=394&originWidth=893&originalType=binary&ratio=1.5&rotation=0&showTitle=false&size=49256&status=done&style=none&taskId=uca0fa5c6-fe26-4d2f-9b3f-2def681d501&title=&width=595.3333333333334)
在“[多字段表单](https://getquicker.net/kc/help/doc/form)”对某个变量使用单行/多行文本编辑框输入方式,或 “[用户输入](https://getquicker.net/kc/help/doc/userinput)”模块时,可以选择启用文本选择工具。
![image.png](https://cdn.nlark.com/yuque/0/2023/png/272392/1699579166261-68e481d9-2e8b-4172-adf4-a6a831dd52ad.png#averageHue=%23fbfafa&clientId=ud4b8a4b7-60d6-4&from=paste&height=791&id=u1d4542cc&originHeight=1186&originWidth=1032&originalType=binary&ratio=1.5&rotation=0&showTitle=false&size=115015&status=done&style=none&taskId=u556c24db-a5dc-4afe-a37a-dd37c10aecb&title=&width=688) 在1.40.11版本中,增加了通过调用子程序实现自定义文本选择工具的功能。 # 自定义文本选择工具 示例动作:[示例:自定义文本工具](https://getquicker.net/Sharedaction?code=d08bf039-e016-4482-7fe6-08dbdfe824d8) ## 准备子程序 通过为子程序设定一些预置的变量,来完成参数的输入和输出。
![image.png](https://cdn.nlark.com/yuque/0/2023/png/272392/1699580144645-506803d9-821c-4121-95b5-497794b06f39.png#averageHue=%23e8e8e8&clientId=ud4b8a4b7-60d6-4&from=paste&height=287&id=u5296621a&originHeight=431&originWidth=1242&originalType=binary&ratio=1.5&rotation=0&showTitle=false&size=49332&status=done&style=none&taskId=uabaee999-8f3d-45cd-a745-8c4b6716bb3&title=&width=828) **输入变量** - `text` (文本)文本框中当前的内容。如果不关注,可以不定义。 - `selected` (文本)文本框中当前选择的内容。如果不关注,可以不定义。 - `parent` (动态对象)文本框所在父窗口对象,为WPF的Window类型。 如果不关注,可以不定义。 - 其它需要为子程序传入数据的自定义参数,如上图中的`count`。自定义参数用于一个子程序处理多种情况时使用。 仅需要时定义。如何为参数传入内容,请参考本文后面部分。参数名不能和上面预定义的相同。 **输出变量** - `output` 返回的写入输入框的内容。 默认情况下,这些内容将替换输入框里的所有内容。如需在现有内容中追加,可以在子程序中处理后一起返回,也可以通过自定义替换模式实现追加,请参考本文后面部分。 子程序应该根据实际需求,将要生成的结果输出到`output`变量中。 ## 设置自定义文本工具 在表单字段的“扩展设置”参数中添加自定义文本选择工具设置。
![image.png](https://cdn.nlark.com/yuque/0/2023/png/272392/1699580839727-35f087c4-6cb4-45f7-9845-d8fd55cd443d.png#averageHue=%23fbfbfa&clientId=ud4b8a4b7-60d6-4&from=paste&height=791&id=u7f1af97f&originHeight=1186&originWidth=1294&originalType=binary&ratio=1.5&rotation=0&showTitle=false&size=142553&status=done&style=none&taskId=uc456f5db-e348-4e06-9506-2913661c52b&title=&width=862.6666666666666) 格式如下: - 以`texttool:`作为指令前缀。 - 不需要为子程序传递额外参数时,使用格式 `[图标]第一行提示(其它提示)|子程序名称`。 - 需要为子程序传递额外参数时,使用格式 `[图标]第一行提示(其它提示)|operation=sp&spname=子程序名称&自定义参数1=值1&自定义参数2=值2` ,如果值中有特殊字符,请先URL编码后写入。 图标格式请参考, [在动作中使用图标 - Quicker](https://getquicker.net/kc/help/doc/use-icon-in-actions),建议使用内置矢量图标。 # 控制文本选择工具的结果替换模式 使用文本工具选择内容后,是替换输入框里所有内容,还是追加到现有内容上,可以在“扩展设置”中使用`ttmode:指令`的方式指定: - `ttmode:all` 替换输入框中所有内容; - `ttmode:selected` 替换输入框内当前选中的内容; - `ttmode:\n` 追加模式,换行分隔; - `ttmode:,` 追加模式,逗号分隔; - `ttmode:;` 追加模式,分号分隔。 注意,这里仅支持上述几种模式。这里设定的模式会覆盖文本选择工具的默认模式。 例如:
![image.png](https://cdn.nlark.com/yuque/0/2023/png/272392/1699582194209-d10ba2db-2258-4628-9280-96003c74177f.png#averageHue=%23fbfafa&clientId=ud4b8a4b7-60d6-4&from=paste&height=117&id=u8a1e529b&originHeight=176&originWidth=471&originalType=binary&ratio=1.5&rotation=0&showTitle=false&size=8305&status=done&style=none&taskId=ufe2b713a-dcea-488b-96d7-7e1f1e7a991&title=&width=314)
将会在选择窗口后,将路径追加到文本框中:
![image.png](https://cdn.nlark.com/yuque/0/2023/png/272392/1699582310746-a735d6f4-696d-42f3-a94c-15b22ce67ef4.png#averageHue=%23f9f8f6&clientId=ud4b8a4b7-60d6-4&from=paste&height=327&id=ud5fdfb81&originHeight=490&originWidth=1050&originalType=binary&ratio=1.5&rotation=0&showTitle=false&size=54450&status=done&style=none&taskId=u25c7447e-322f-456c-89c9-dce370e8e7f&title=&width=700)