def on(self, event, callback, selector=None):
cbk = asyncio.coroutine(callback)<EOL>self._event_cache.append(<EOL>{'<STR_LIT>': event, '<STR_LIT>': cbk, '<STR_LIT>': selector})<EOL>if self.is_loaded:<EOL><INDENT>self.context.register(event, cbk, selector)<EOL><DEDENT>
Wrapper around :meth:`~.application.Application.register`.
If :meth:`~.application.View.on` is called, for instance, during :meth:`~.application.View.build`,
the event handlers will be enqueued and registered when the view is loaded. Similarly,
if :meth:`~.application.View.on` is called once the view is loaded (for example, in a button callback),
the event handler will be registered immediately.

:param event: Name of the event to monitor
:param callback: Callback function for when the event is received (Params: event, interface).
:param selector: `(Optional)` CSS selector for the element(s) you want to monitor