UITextField PlaceHolder 颜色改变 Monotouch

Posted

技术标签:

【中文标题】UITextField PlaceHolder 颜色改变 Monotouch【英文标题】:UITextField PlaceHolder Color change Monotouch 【发布时间】:2014-06-29 20:30:22 【问题描述】:

所以我一直在尝试更改 UItextfield 占位符的颜色,但我没有运气。我已经尝试过子类化,并且我已经尝试过修改 Attributed 字符串,但没有任何效果,所以希望有人可以帮助我。

这是我累的子类。

public class CustomTextbox : UITextField

    private string placeholder get;  set; 
    public CustomTextbox ()
    
    

    public CustomTextbox(string theString)
    
        this.placeholder = theString;
    

    public override void DrawPlaceholder (RectangleF rect) 
        using (UIFont font = UIFont.SystemFontOfSize (16)) 
        using (UIColor col = new UIColor (UIColor.Blue.CGColor))  
            col.SetFill (); col.SetStroke (); col.SetColor (); base.DrawString (base.Placeholder,rect, font);  



这是我尝试过的属性字符串方法:

var textat = new NSMutableAttributedString ("Email", new CTStringAttributes () 


            ForegroundColor = UIColor.White.CGColor,StrokeColor = UIColor.White.CGColor,
            StrokeWidth = 5.0f
        );
        this.emailtextbox.AttributedPlaceholder = textat;

请有人帮助我。提前致谢。

【问题讨论】:

【参考方案1】:

只需简化您已有的内容 :-) 这适用于 ios7:

var t = new UITextField()

  AttributedPlaceholder = new NSAttributedString("some placeholder text", null, UIColor.Red)

【讨论】:

非常感谢。这对我有帮助。我忘记了 NSAttributedString 的所有参数设置只需要前 3 个,并且可以将其余的设置为空。再次感谢 同样的问题同样的解决方法不知道为什么,但是已经解决了! 如果您只想更改占位符的 color 而不想为 text 创建字符串怎么办?有没有办法使用相同的 NSAttributedString 对象,但只是使第一个参数无效? 我不明白你为什么要这么做。如果没有没有文字,为什么要设置它的颜色? 这完全可行,我不知道为什么我不尝试。谢谢!【参考方案2】:

这样做的唯一方法是(找到答案here)

myLogin.AttributedPlaceholder = new NSAttributedString (
    "Enter your credentials",
    font: UIFont.FromName ("HoeflerText-Regular", 24.0f),
    foregroundColor: UIColor.Red,
    strokeWidth: 4 
);

【讨论】:

【参考方案3】:

试试这个:

[yourtextField setValue:[UIColor blueColor] forKeyPath:@"_placeholderLabel.textColor"];

【讨论】:

这是 ObjC。尽管它可能很容易翻译成 C#,但值得一提的是。

以上是关于UITextField PlaceHolder 颜色改变 Monotouch的主要内容,如果未能解决你的问题,请参考以下文章

在 UITextField 中右对齐 PlaceHolder 文本

UITextField PlaceHolder 颜色改变 Monotouch

代码笔记UITextField设置placeholder颜色

RunTime运行时在iOS中的应用之UITextField占位符placeholder

自定义UITextView的placeholder(占位文字)

RunTime 在iOS中的应用与UITextField占位字符placeholder自定义