我正在创建一个View Controller来记录用户的电话号码或电子邮件地址,并且希望他们在选择“电话”按钮或“电子邮件”按钮时更改文本字段的占位符。
这只是应该更改占位符的按钮
void PhoneSelectBtn(object sender, EventArgs e)
{
EmailPhoneBox.AttributedPlaceholder = new NSAttributedString("Phone");
}
,并且每次我运行该应用程序时,它都会崩溃,这是我得到的错误:
Objective-C exception thrown. Name: NSUnknownKeyException Reason: [<UIViewController 0x7f813ec3b870> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key EmailPhoneBox.
Native stack trace:
我尝试了其他选项,例如使用分段控件(显然,它与设置按钮有些不同),并且得到相同的结果。我更改了按钮方法,类,并且每次都出现相同的结果。没有任何不必要的事件也不会拖延。没主意。如果可以一步一步解释该怎么做,那将很棒。我确信这并非难事,但我只是在学习,发现很难找到适用于此类小事情的适用文档。谢谢,乔什
答案 0 :(得分:0)
似乎就像许多其他Xamarin功能一样,似乎应该添加但不应添加这些功能,这需要自定义渲染器。
另一个选择是
在Xaml中将占位符字符串设置为编辑器的文本,然后在文件后面的代码中:
InitializeComponent();
var placeholder = myEditor.Text;
myEditor.Focused += (sender, e) =>
{
// Set the editor's text empty on focus, only if the place
// holder is present
if (myEditor.Text.Equals(placeholder))
{
myEditor.Text = string.Empty;
// Here You can change the text color of editor as well
// to active text color
}
};
myEditor.Unfocused += (sender, e) =>
{
// Set the editor's text to place holder on unfocus, only if
// there is no data entered in editor
if (string.IsNullOrEmpty(myEditor.Text.Trim()))
{
myEditor.Text = placeholder;
// Here You can change the text color of editor as well
// to dim text color (Text Hint Color)
}
};