I recently stepped over an issue during iOS app development for one of my customers. If the user switches to the Emoji-Keyboard on her iPhone during text input in a
UITextView and uses some of the icons the backend system for that app could not handle this. Implementing Emoji-Support on the server side would be a high effort.
The far more easier solution is to block the Emoji-Keyboard on the iOS side to prevent the user from using these characters. The
UITextInputTraits protocol defines the property
keyboardType of type
UIKeyboardType. By setting this property you can define the keyboard layout shown to the user, he starts typing into a
UIKeyboardType lists several keyboard layouts for email input, phone number input, or URL input for example. The property
keyboardType has the value
UIKeyboardTypeDefault as its default value. With this set the user may use Emojis from the Emoji-Keyboard if he has activated this in the settings on his iPhone. Deactivating the Emoji-Keyboard but still enabling the user to switch between different keyboard languages is rather simple: Just set the property
UIKeyboardTypeASCIICapable. This sounds a little bit confusing as you might think, from now on only characters from the ASCII character set may be shown, but this is not true. The user has the full character set at hand, can switch to other language-related keyboards but the Emoji-Keyboard.
Every time you handle text input you should think about using the appropriate keyboard layout and switching to