Ideally yes, although in practice the underlying platform UI framework may make the latter more or less easy. eg in most cases a text entry UI widget will (or can) receive a 'lost focus' / 'keyboard dismissed' / etc event when this happens. But in other cases it may simply be that some other UI object receives the next event from the main UI thread, and short of intercepting all these events it could be quite hard to backtrack and determine who was previously receiving UI events (and hence 'lost focus'...)
[which is one of the reasons I've been looking into triggering these of xform-value-changed events, ie when the actual instance XML gets updated, as opposed to the specific UI widget that have precipitated it. Note, my particular usecase is specifically in regards to change tracking, not the general audit log in general, which can be more client specific]