This may be fixed in newer version of NGUI, but I thought I’d share the solution for this issue on NGUI Version 3.5.1, which I ran into when trying to build my Windows game for Windows 10 Store platform.
The problem is that the editing keys no longer work in the text input gadgets. Backspace, Delete, Arrows, Home, end End, do nothing.
The issue was resolved by changing the conditions that define MOBILE at the top of NGUI\Scripts\UI\UIInputGUI.cs. When MOBILE is defined, the compiler removes the OnGUI() method which is where the editing key inputs are detected and passed through to UIInput.ProcessEvent().
The fix is to change the pre-processor directives at the top of NGUI\Scripts\UI\UIInputGUI.cs from this:
#if !UNITY_EDITOR && (UNITY_IPHONE || UNITY_ANDROID || UNITY_WP8 || UNITY_BLACKBERRY || UNITY_WINRT)
#define MOBILE
#endif
to this:
#if !UNITY_EDITOR && (UNITY_IPHONE || UNITY_ANDROID || UNITY_WP8 || UNITY_BLACKBERRY)
#define MOBILE
#endif
Note: “|| UNITY_WINRT” is removed because that is “Equivalent to UNITY_WP8 | UNITY_WSA”, according to the Unity Manual (Unity - Manual: Conditional compilation). Because UNITY_WSA is defined for Windows 10 Store platform, this causes MOBILE to be defined for the Windows 10 Store platform in UIInputOnGUI.cs, whether or not the game is targeted for mobile (which in my case it was not).
Note, a similar construct is at the top of UIInput.cs, but it did not include UNITY_WINRT:
#if !UNITY_EDITOR && ( UNITY_IPHONE || UNITY_ANDROID || UNITY_WP8 || UNITY_WP_8_1 || UNITY_BLACKBERRY )
#define MOBILE
#endif