Jha*_*118 12 xamarin xamarin.forms
如何允许用户从Xamarin.Forms标签中复制和粘贴?
单击任何平台上的文本,默认设置不允许突出显示,因此复制和粘贴.
任何帮助,将不胜感激.
您可以做的是将您的标签包装在手势识别器中:
<Label Text="Test">
<Label.GestureRecognizers>
<TapGestureRecognizer
Tapped="YourFunctionToHandleMadTaps"
NumberOfTapsRequired="1"
/>
</Label.GestureRecognizers>
</Label>
Run Code Online (Sandbox Code Playgroud)
这将触发您的功能,在该功能中,您可以进入剪贴板并进行复制和粘贴.但是,我无法找到一种简单的方法来访问Xamarin.Forms中的剪贴板,因此您必须使用依赖服务.
这是我如何进行剪贴板数据访问.请注意,在我的项目中,我只需要从剪贴板中删除数据,因此此代码只显示如何访问剪贴板数据:
在您的XF项目中创建一个接口,例如:
public interface IClipBoard
{
String GetTextFromClipBoard();
}
Run Code Online (Sandbox Code Playgroud)在移动项目中实现界面:
Android:
public string GetTextFromClipBoard ()
{
var clipboardmanager = (ClipboardManager)Forms.Context.GetSystemService (Context.ClipboardService);
var item = clipboardmanager.PrimaryClip.GetItemAt(0);
var text = item.Text;
return text;
}
iOs:
public string GetTextFromClipBoard ()
{
var pb = UIPasteboard.General.GetValue ("public.utf8-plain-text");
return pb.ToString ();
}
Run Code Online (Sandbox Code Playgroud)不要忘记在顶部添加汇编位:
iOs: [assembly: Dependency (typeof (ClipBoard_iOs))]
Android: [assembly: Dependency (typeof (ClipBoard_Droid))]
Run Code Online (Sandbox Code Playgroud)
从您的XF函数调用依赖服务
public void YourFunctionToHandleMadTaps(Object sender, EventArgs ea)
{
var clipboardText = DependencyService.Get<IClipBoard> ().GetTextFromClipBoard ();
YourFunctionToHandleMadTaps.Text = clipboardText;
}
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
4680 次 |
| 最近记录: |