custom keyboard event, if not null, it should be called before doing anything else in keyboardEvent.
See Implementation
custom keyboard event, if not null, it should be called before doing anything else in keyboardEvent.