I implement a custom keyboard extension. On modern iPhones the dictation button will display in the lower right even when a custom keyboard is active. If you are in an empty text field with the sentence capitalization trait turned on (e.g., Messages), press the Mic button, and dictate something, it will appear with the first word capitalized. As it should. But when you hit the Mic button again to accept the result, the first word is suddenly changed to uncapitalized. With the system keyboard this final case change does not occur.
Why? How to prevent this?
More technical detail: I receive UITextInputDelegate-textWillChange and UITextInputDelegate-textDidChange events during dictation (always with the textInput parameter set to nil) and then a final textDidChange with the lowercased text when accepting at the end.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
I'm trying to diagnose a problem with a keyboard extension. It shows up only on a customer device. I added some verbose logging to the extension, deployed via TestFlight, and had them send me the system_logs.logarchive from a sysdiagnose.
It shows them installing the update from TestFlight and then the keyboard launches as PID 612 and logs successfully. Then the app is terminated for a strange reason ("Terminating plugin com.natdes.Typefinity.Typefinity-Keyboard of com.natdes.Typefinity because access to the kTCCServiceKeyboardNetwork service changed."). It relaunches 3 seconds later as PID 613. However PID 613 never shows up as logging anything itself. Even though it proceeds to run and serve keyboard requests for the next 24 hours until the log ends. (I can see all the messages of processes communicating with it.)
Does anyone know of a reason why a process might be wholesale-excluded from the system_logs in a sysdiagnose? Is it just falling on the wrong side of some arcane retention policy? Is there any way from the app side to prevent this?
Thanks.