I'm maintaining a heritage iPad app for professional end-users. It has a UITextField to accept ASCII-only strings. All users have physical Bluetooth keyboards and don't want to see the (intrusive) on-screen keyboard at all. How do I suppress it?
The rules governing if/when an on-screen keyboard appears are intricate, and tricky to code unless prepared to accept the [UITextField] default behavior. Which the users aren't. Pre-2010 the original coder wrote a cumbersome solution. If it ever worked, iOS has since changed to break it. I'd welcome a robust Objective-C technique that is unlikely to break in the next 10 years, simple enough for the next coder to understand – and remove.
I see several answers to questions resembling mine. Most are old, and many have since been reported broken. My problem is not how to detect a physical keyboard, or the visibility of an on-screen keyboard. Users want a Settings switch to suppress on-screen keyboards altogether, yet still respond to the physical keyboard. A UISwitch inspected once-for-all in viewDidLoad is good enough. An option switchable in-session would be better.
How do I code the simplest such option?