Я хочу, чтобы следующая клавиша со стрелкой говорила «Готово», когда выделено поле «Редактор».
Здесь, на изображении отмеченная клавиша «Следующая клавиша со стрелкой» имеет значение «Готово»
Я ссылался на некоторые ссылки по этому поводу, но, похоже, ни одна из них не работает в моемcase ... Это один из таких Изменить возврат на следующий / готовый ключ в общем проекте Xamarin Forms
Здесь они расширяют свойство Entry, где, как и в моем случае, мне нужно расширитьСвойство Editor, когда я пытаюсь расширить Свойство Editor, не показывает ошибок, но клавиатура выглядит как раньше
Мой код:
public class PlaceholderEditorRenderer : EditorRenderer
{
public PlaceholderEditorRenderer()
{
}
protected override void OnElementChanged(
ElementChangedEventArgs<Editor> e)
{
base.OnElementChanged(e);
PlaceholderEditor placeHolderEditor = (PlaceholderEditor)this.Element;
if (this.Control != null)
{
if (placeHolderEditor != null)
{
SetReturnType(placeHolderEditor);
Control.EditorAction += (object sender, EditText.EditorActionEventArgs args) =>
{
if (placeHolderEditor.ReturnKeyType == ReturnKeyTypes.Done)
placeHolderEditor.Unfocus();
// Call all the methods attached to custom_entry event handler Completed
placeHolderEditor.InvokeCompleted();
};
}
}
if (e.NewElement != null)
{
var element = e.NewElement as PlaceholderEditor;
this.Control.Hint = element.Placeholder;
}
}
protected override void OnElementPropertyChanged(
object sender,
PropertyChangedEventArgs e)
{
base.OnElementPropertyChanged(sender, e);
if (e.PropertyName == PlaceholderEditor.PlaceholderProperty.PropertyName)
{
var element = this.Element as PlaceholderEditor;
this.Control.Hint = element.Placeholder;
}
}
private void SetReturnType(PlaceholderEditor entry)
{
ReturnKeyTypes type = entry.ReturnKeyType;
switch (type)
{
case ReturnKeyTypes.Go:
Control.ImeOptions = ImeAction.Go;
Control.SetImeActionLabel("Go", ImeAction.Go);
break;
case ReturnKeyTypes.Next:
Control.ImeOptions = ImeAction.Next;
Control.SetImeActionLabel("Next", ImeAction.Next);
break;
case ReturnKeyTypes.Send:
Control.ImeOptions = ImeAction.Send;
Control.SetImeActionLabel("Send", ImeAction.Send);
break;
case ReturnKeyTypes.Search:
Control.ImeOptions = ImeAction.Search;
Control.SetImeActionLabel("Search", ImeAction.Search);
break;
case ReturnKeyTypes.Done:
Control.ImeOptions = ImeAction.Done;
Control.SetImeActionLabel("Done", ImeAction.Done);
break;
default:
Control.ImeOptions = ImeAction.Done;
Control.SetImeActionLabel("Done", ImeAction.Done);
break;
}
}
}