如何在Nativescript中选择文本?

如何在Nativescript中选择文本?,nativescript,Nativescript,我想让一些文本由用户选择,以便她可以复制和粘贴它。如何在Android和iOS上的Nativescript中选择标签元素中的文本?我过去也做过同样的事情,我想出了一个解决方案。我唯一要做的就是对字体和其他东西使用内联样式: <HtmlView html="<span style='font-size:16px;color:#8f8f8f;margin:3px 0;font-family: Open Sans;'>{{oVPC.data}}</span>" textW

我想让一些文本由用户选择,以便她可以复制和粘贴它。如何在Android和iOS上的Nativescript中选择标签元素中的文本?

我过去也做过同样的事情,我想出了一个解决方案。我唯一要做的就是对字体和其他东西使用内联样式:

<HtmlView html="<span style='font-size:16px;color:#8f8f8f;margin:3px 0;font-family: Open Sans;'>{{oVPC.data}}</span>" textWrap="true" class="data" (tap)="onOpenLinkInWebBrowser(oVPC.data)"></HtmlView>

TextView 如果您可以将其更改为
TextView
iOS将默认为此行为

  • 设置'editable=“false”,以便用户无法编辑您的文本。并防止键盘出现

  • iOS
    将应用白色背景。设置`backgroundColor=“transparent”以停止此操作

  • 在Android上,您需要设置
    args.object.nativeView.setTextIsSelectable(true)
    (即从加载的视图
    事件)。即使您坚持使用
    标签
    ,也需要这样做


exports.makeSelectable=args=>args.object.nativeView.setTextIsSelectable(true);

标签 如果你想(或需要)坚持使用
标签
,我认为你有两个选择

  • 如果希望用户能够使用本机文本选择UI仅选择部分文本

    • 对于
      iOS
      查看
      UIMenuController
    • 对于
      Android
      只需再次
      settextisselection
  • 如果您只是希望用户能够将整个文本复制到剪贴板,请将
    longPress
    事件附加到
    标签上。然后抓取
    object.text
    ,通过使用本机API或插件将其添加到剪贴板。我推荐这个插件

    • iOS
      上,
      longPress
      事件将触发两次。因此,为了确保不复制文本两次,可以检查
      args.ios.state
      。这将在按下开始时返回常数1,在按下结束时返回常数3