C#Xamarin/Monotouch.Dialog-EntryElement未显示输入的字符
本文关键字:输入 字符 显示 Monotouch Dialog-EntryElement C#Xamarin | 更新日期: 2023-09-27 18:22:46
我有一个Monotouch.Dialog EntryElement
。
偶尔,当我开始打字时,什么都没有显示。。。
光标不会显示,如果我键入文本,它将看不到,但它确实被持久化为EntryElement.Value
属性。
问题似乎只出在iPhone
本身上,而不出在iOS Simulator
上。我正在运行iOS 6.3
有什么想法吗?如果我不能有一个一致的用户体验,这对我来说几乎等于取消了Monotouch
。
在Xamarin
错误跟踪系统中,bug 7398就是您描述的情况。
但它是iOS
的5.4版,在5.2版上运行良好。
Bug 7116也描述了同样的问题,但这次不是Xamarins
错误。
我给你的建议是把你的问题作为一个bug发布在bugzilla.xamarin.com上。
请出示我上面提供的样本,以便正确地编写错误报告。
只是一个为我做这项工作的变通方法:
//FIXME: this is a workaround about a bug relative to the position of TextBox element
// https://bugzilla.xamarin.com/show_bug.cgi?id=7398
var tmp = new EntryElement ("a", "a", "a");
我已经在应用程序的第一个视图中添加了这段代码,问题就解决了。
我希望这对其他人有帮助。
听起来你遇到了一个bug。对我来说,唯一真正有效的解决方案是子类EntryElement
,并在构造函数中调用FetchValue();
方法。这里有一个例子:
public SAEntryElement (string caption, string placeholder, string value) : base(caption, placeholder, value)
{
// HACK: A workaround in an attempt to stop the bug where the value field would be empty sometimes
FetchValue();
}
我还没能制作出一个可靠的测试用例来测试Xamarin的bugzilla,我也没有时间再和它斗争了。由于我已经实现了这个解决方案,模拟器和设备上的问题已经持续了几个月。另外请注意,与空字符串相关的已知错误也有类似的症状,如标题(单独的问题)。
在MikroDel的回答和bugzilla中对错误7398的评论的帮助下,我的问题是EntryElement的高度为0。
将其设置为所需值(大于0)解决了问题。