ホーム : 実験室 : testUPFocus

testUPFocus(2005/09/03訂)

 Full keyboard accessがオンの時、キー入力のないボタンなどのコントロールにもフォーカスリングが描かれ、スペースバーを押すと該当コントロールをクリックしたことになります。これをどう実現するのか、ユーザペインとカスタムコントロール(HIView)で実装してみたものです。しかし、フォーカスリングは描けたものの、スペースバーによるクリックのシミュレーションが実現できていません(フォーカスを受ける意味がない(^_^;)。何をどうすれば受付けられるのか、今後の課題。
 kEventClassKeyboard/kEventRawKeyDown でスペースキーを拾って自分で処理することで対応しました。しかしこの機能は常にスペースバーに依ることが保証されているのだろうか?確かにショートカットキーカスタマイズの対象外ではあるけれど。(2005/09/03)

 サンプルプロジェクトは Xcode 2.1で作成しています。ウインドウの赤と緑のボックスがそれぞれユーザーペインとカスタムHIViewです。クリックしたらAlertSoundPlay()で音を出すしかやっていません。私のプログラムのSimpleDEMViewerでは、RGBColorデータを持たせて、クリックしたらカラーピッカーを表示し、色を変更できるようにしています。

 Full keyboard accessをオンとオフで切替えて、タブキーでコントロール間を移動してみてください。

 カスタムHIViewの簡単なサンプルにもなっています。

 ダウンロード testUPFocus.zip(21kB)

(C)Copyright 2005, Yoshiaki Katayanagi.