我希望用户可以选择一些文本,以便她可以复制和粘贴。如何在Android和iOS的Nativescript中选择Label元素中的文本?
答案 0 :(得分:2)
如果您可以将其更改为TextView
,则 iOS 会默认使用此行为。
设置`editable =“ false”,以便用户无法编辑您的文本。并防止键盘出现。
iOS
将应用白色背景。设置“ backgroundColor =“ transparent”即可停止此操作。
在Android
上,您需要设置args.object.nativeView.setTextIsSelectable(true)
(即,从视图loaded
事件开始)。即使您坚持使用Label
,也需要这样做。
<TextView
editable="false"
text="Your text goes here"
backgroundColor="transparent"
android:loaded="makeSelectable" />
exports.makeSelectable = args => args.object.nativeView.setTextIsSelectable(true);
如果您想(或需要)坚持使用Label
,我想您有两个选择;
如果您希望用户能够使用本机文本选择UI选择文本的一部分
iOS
,请查看UIMenuController
。Android
,只需再setTextIsSelectable
。如果仅希望用户能够将整个文本复制到剪贴板,请在您的longPress
上附加一个Label
事件。然后,通过使用本机API或Clipboard插件,抓取object.text
并将其添加到剪贴板。我推荐插件。
iOS
上,longPress
事件将触发两次。因此,要确保您不会复制两次文本,可以选中args.ios.state
。按下时将返回常数 1 ,结束时将返回 3 。答案 1 :(得分:0)
过去我不得不做同样的事情,所以我想到了HTMLView。我唯一要做的就是对字体和其他内容使用内联样式:
<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>