「大文字のG」|| 「Shift+g」か!?

in

動的にメニューを作成するアプリを作成している際に気づいたのですが、メニューショートカットを指定するkeyEquivalentメッセージ。指定するキャラクタが大文字か小文字かで意味あいが変わります。

もちろん、ドキュメントにも明記されているのですがうっかり読み飛ばしてしまい大いに悩みました。最初、"command + C"を表現するのに、

[menuItem setKeyEquivalent:@"C"];
[menuItem setKeyEquivalentModifierMask:NSCommandKeyMask];

としていたのですが、これだと"shift + command + C"となってしまうわけです。大文字のキャラクタはそれだけでshiftを指定されたことになるわけです。まあ、Cを入力するためにはshift + Cとタイプするでしょぅてことなのだろうけど...こういうことって、COBOL文化圏の人にはしっくりこないのだろうなぁ。(バリバリCOBOLの人が、趣味でCocoaなんてことないだろうけど。)

そういえば、昔、同僚に「vi(m)で最終行にジャンプするには?」って聞かれたとき、「大文字のG」って答えたことがあって同僚は「???」だったことを思い出します。あぁ、そのときはなんて察しが悪いんだろうと思ったものですが相手ときちんとコミュニケートするという意味では「shift + ジー」と答えるべきだったかなぁなどと思う次第。

ちなみに、setKeyEquivalentに大文字・小文字どちらで指定してもメニューバーに表示される時は大文字になります。(かの方もハマっていたんですね。安心。)

この記事のトラックバックURL:

http://hippos-lab.com/blog/trackback/246

返信