For the ProductLayer SDK I have built a text field that keeps track of the last used input language. When implementing this I noticed that several of the methods that UITextField claims to be implementing are not being called. Apparently this is a new bug in iOS 8.
Filed as rdar://19263531 and on Open Radar.
UITextField’s header states that it is implementing the UITextInput protocol. However this is only partially true.
Our tests show that -deleteBackward and -replaceRange:withText: are not called on subclasses of UITextField. Only -insertText from UIKeyInput is being called.
This is an inconsistency that confuses developers requiring subclassing of UITextField.
Steps to Reproduce
- Subclass UITextField
- override -deleteBackward
- set a breakpoint there
- use this subclass in an app
- When the user hits the backspace key the -deleteBackward method should be called.
- When the user inserts or replaces ranges of text, the -replaceRange:withText: method should be called
- -deleteBackward is not called
- -replaceRange:withText is not called
Categories: Bug Reports