我正在通过PCL项目使用C#和Xamarin.Forms库编写一个简单的应用程序。该应用程序使用编辑器视图,检测输入'〜' (代字号)字符。 '〜'字符被' |'取代。使用Editor视图的TextChanged事件的字符。
问题是:在更新编辑器视图的Text属性后(请参见下面的代码),编辑器视图上的光标跳转到编辑器的最开头位置,而不是在最后输入后立即停留编辑器表面上的角色。要继续输入,我必须在最后输入字符的位置后移动光标。任何时候,一个代字号'〜'检测到后面的更新逻辑,并且编辑器视图AGAIN上的光标跳转到编辑器的最开头位置。将它移到编辑器的最后输入字符位置之外是用户必须的。这个bug对我来说很烦人。
如何解决光标的错误?我希望它能够保留在编辑器表面上最后输入的字符之后,这样我就不需要移动它,只要一个代字号“〜”'被检测到。
代码隐藏逻辑:
public void OnTextChanged(object sender, EventArgs e)
{
var editor = (Editor)sender;
if(editor.Text.Contains("~"))
{
editor.Text = editor.Text.Replace("~", "|"); // updated the Text of Editor
}
}
答案 0 :(得分:2)
最新版本(2.3.x)中已修复此问题。 https://github.com/xamarin/Xamarin.Forms/blob/master/Xamarin.Forms.Platform.Android/Renderers/EditorRenderer.cs#L111
只需通过NuGet进行更新。