c# - 我想让应用程序启动时剪贴板有数字时按钮可见(xamarin)
问题描述
当我调用此方法时,剪贴板值为空
****here is the method ****
async void clip()
{
var phoneNum = await Clipboard.GetTextAsync();
if (Clipboard.HasText)
{
//btnSaudi.Text = phoneNume;
Regex reg = new Regex(@"^\d+$");
if (reg.IsMatch(phoneNum))
btnSaudi.IsVisible = true;
}
}
但是当我在按钮单击事件中使用相同的代码时它可以工作
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="DirectM.MainPage"
Title="DirectN">
<ContentPage.ToolbarItems>
<ToolbarItem Text="setting" Clicked = "ToolbarItem_Clicked" Order="Secondary" />
</ContentPage.ToolbarItems>
<StackLayout >
<StackLayout Padding="20,50,20,10" >
<Entry x:Name="txtPhone" Keyboard="Telephone" Placeholder="numbe" />
</StackLayout>
<StackLayout Padding="50,50,50,100" >
<Button x:Name="btnSaudi" Text="ENTER" Clicked="btnSaudi_Clicked" Padding="5,5,5,5" FontSize="Large" />
</StackLayout>
</StackLayout>
</ContentPage>
这是页面的 xaml 代码
解决方案
您可以覆盖onAppearing()方法。在页面可见之前调用此方法。代码如下:
protected override void OnAppearing()
{
base.OnAppearing();
clip();
}
async void clip()
{
var phoneNum =await Clipboard.GetTextAsync();
if (Clipboard.HasText)
{
Regex regex = new Regex(@"^\d+$");
Console.WriteLine(phoneNum);
if (regex.IsMatch(phoneNum))
{
Console.WriteLine("match");
btnSaudi.IsVisible = true;
}
}
}
截图:
推荐阅读
- javascript - 加载数据后不会触发表单验证
- google-apps-script - 如何使消息框=单元格值?
- css - 如何使表格中的两列具有相同的宽度?
- excel - 使用 VBA 对树状结构进行排序
- java - “first.next = second.next;”是什么意思
- audio - 在 SoxSharp 中使用 lame
- java - Spring Boot 的 JHipster WAR 工件重命名为 JAR 不会运行
- parallel-processing - CUDA:使用推力根据另一个数组定义的顺序对数组进行排序
- python - 如何在用户设置中为 VS Code python Sort Imports 配置行长?
- sql - SQL Server 运行总计以使用 365 天窗口函数根据美元金额查找帐户