Мне нужно было сделать что-то подобное в старом проекте, и в итоге я использовал шаблон службы для реализации.
Android Служба:
public class KeyboardService : IKeyboardService
{
public void HideKeyboard()
{
var context = Application.Context;
var inputMethodManager = context.GetSystemService(Context.InputMethodService) as InputMethodManager;
if (inputMethodManager != null && context is Activity)
{
var activity = context as Activity;
var token = activity.CurrentFocus?.WindowToken;
inputMethodManager.HideSoftInputFromWindow(token, HideSoftInputFlags.None);
activity.Window.DecorView.ClearFocus();
}
}
}
iOS Служба:
public class KeyboardService : IKeyboardService
{
public void HideKeyboard()
{
UIApplication.SharedApplication.KeyWindow.EndEditing(true);
}
}
Интерфейс:
public interface IKeyboardService
{
void HideKeyboard();
}
Для использования вам необходимо зарегистрировать его в своей службе зависимостей, чтобы разрешить его. После его разрешения использовать его:
if (lastOTPEntry.Value != string.Empty)
{
keyboardService.HideKeyboard();
}
Я давно не касался этого проекта, но logi c должен работать.