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

C#Xamarin/Monotouch.Dialog-EntryElement未显示输入的字符

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)解决了问题。