How do you get the instance of the mobile keyboard when it is invoked by an InputField

I’m trying to make my UI respond to the appearance of the mobile keyboard by scrolling up to match the area covered by the the mobile keyboard when it is invoked by touching inside of of the InputField.

My plan was to make a manager that monitors the behavior of the TouchScreenKeyboard and fires off events that different views can respond to, however I cannot seem to find any way to get a reference to the TouchScreenKeyboard instance if you do not invoke the keyboard yourself with TouchScreenKeyboard.Open.
Nor does there seem to be a way of preventing the InputField from invoking the TouchScreenKeyboard so my own manager can do so instead.

This seems like a major oversight since the documentation for “TouchScreenKeyboard” says “Because the appearance of the keyboard has the potential to obscure portions of your user interface, it is up to you to make sure that parts of your user interface are not obscured when the keyboard is being displayed.”

Is anyone aware of a method that allows you to get access to the TouchScreenKeyboard instance when it is invoked by an input field that I seem to be missing?

I don,t know English my friend but i want know that what your said (: but i can help u maybe
miladloveboth2014@gmail.com

I am having the same issue. Does anyone know how to get the instance?

I did a quick lookup and it seems that there is a protected member for the TouchScreenKeyboard in the InputField class.

It looks like TouchScreenKeyboard.Open() returns the instance if it is already open.

Example:
if(TouchScreenKeyboard.visible)
var keyboardInstance = TouchScreenKeyboard.Open(String.Empty);

Great solution, works great! thanks.