光标在编辑器视图上跳到错误的位置

时间:2016-06-26 19:37:21

标签: xamarin xamarin.forms

我正在通过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
   }
}

1 个答案:

答案 0 :(得分:2)

最新版本(2.3.x)中已修复此问题。 https://github.com/xamarin/Xamarin.Forms/blob/master/Xamarin.Forms.Platform.Android/Renderers/EditorRenderer.cs#L111

只需通过NuGet进行更新。