如何在IOS Xamarin.Forms中更改浮动TextField默认占位符颜色

时间:2017-11-29 12:28:41

标签: xamarin xamarin.ios

我在我的应用程序中使用了浮动文本字段。在不知道如何更改ios中的默认占位符颜色。我已经附上截图,密码默认颜色为灰色,我必须将密码颜色更改为黑色。如果在条目中输入任何文本,则只有密码颜色变为黑色。

Screen Shot

1 个答案:

答案 0 :(得分:1)

事实证明问题是由MaterialEntryRenderer中的逻辑引起的。

找到方法SetPlaceholderColor,它会更改placeholderColr渲染。

修改如下:

private void SetPlaceholderColor()
{
    if (Element.PlaceholderColor == Color.Default)
    {
        Control.FloatingLabelTextColor = _defaultPlaceholderColor;
        Control.AttributedPlaceholder = new NSAttributedString(Control.Placeholder, new UIStringAttributes { ForegroundColor = _defaultPlaceholderColor });
    }
    else {
        Control.FloatingLabelTextColor = Element.PlaceholderColor.ToUIColor();
        Control.AttributedPlaceholder = new NSAttributedString(Control.Placeholder, new UIStringAttributes { ForegroundColor = Element.PlaceholderColor.ToUIColor() });
    }
}

然后您可以根据需要更改占位符颜色。

var userNameEntry = new Entry()
{
    Placeholder = "UserName",
    PlaceholderColor = Color.Red,
    TextColor = Color.Green,
};

var passwordEntry = new Entry()
{
    Placeholder = "Password",
    PlaceholderColor = Color.Black,
    TextColor = Color.Gray,
};

enter image description here