xamarin.forms 如何使用 Entry 选择焦点上的所有文本?

标签 xamarin xamarin.forms

我知道 Xamarin.Android 代码,但 Xamarin.IOS 呢?

Xamarin.Android 代码:

public class CustomNumEntry : EntryRenderer
{
    public CustomNumEntry(Context context) : base(context)
    {
    }
    protected override void OnElementChanged(ElementChangedEventArgs<Entry> e)
    {
        base.OnElementChanged(e);
        if (this.Control != null)
        {
            Control.SetPadding(10, 0, 0, 15);
            Control.InputType = Android.Text.InputTypes.ClassNumber | Android.Text.InputTypes.NumberFlagSigned | Android.Text.InputTypes.NumberFlagDecimal;
            Control.TextAlignment = Android.Views.TextAlignment.Center;


        }
        if (e.OldElement == null)
        {
            var nativeEditText = (global::Android.Widget.EditText)Control;
            nativeEditText.SetSelectAllOnFocus(true);
        }

    }
}

最佳答案

对于 Xamarin iOS:

nativeTextField.EditingDidBegin += (object sender, EventArgs eIos) =>
                   {
                      nativeTextField.PerformSelector(new Selector("selectAll"), null, 0.0f);
                   };

对于 Xamarin.Forms 使用 iOS 自定义渲染器(您正在寻找):

public class CustomNumEntry : EntryRenderer
    {
        protected override void OnElementChanged(ElementChangedEventArgs<Entry> e)
        {
            base.OnElementChanged(e);    
            if (Control != null)
            {
                var nativeTextField = (UITextField)Control;    
                nativeTextField.EditingDidBegin += (object sender, EventArgs eIos) =>
                {
                   nativeTextField.PerformSelector(new ObjCRuntime.Selector("selectAll"), null, 0.0f);
                };                           
            }
        }

    }

关于xamarin.forms 如何使用 Entry 选择焦点上的所有文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54033712/

相关文章:

c# - Xamarin.Forms:按代码中的后退按钮

c# - Xamarin.Forms 选项卡式页面和注销

Xamarin Android 构建在启用链接器时挂起

xamarin - 平台上不同的网格大小(高度)

c# - 在 ViewModel 中访问 Xamarin.Forms

c# - Xamarin Forms 绑定(bind)字符串集合 C#

c# - 如何从 azure 数据库填充 ListView

navigation - Android 上不支持全局 PushAsync,请使用 NavigationPage - Xamarin.Forms

c# - 在带有模拟器的 Xamarin.iOS 中使用 Azure AD B2C - 钥匙串(keychain)问题(团队 ID 为空)

ios - 使用 RestSharp 的 ArcGis 连接错误