nchor" id="short_story"></a>
Short Story</h1>
<p>Keyboard events are dispatched from CFrame in this order :</p>
<ul>
<li>IKeyboardHook</li>
<li>focus view</li>
<li>parents of focus view</li>
<li>modal view</li>
</ul>
<h1><a class="anchor" id="long_story"></a>
Long Story</h1>
<p>If a keyboard event is coming to CFrame::onKeyDown or CFrame::onKeyUp, CFrame will first sent the event to the keyboard hook if it is set. If the keyboard hook has not handled the event, the next candidate is the focus view. If there