「大文字のG」|| 「Shift+g」か!?
動的にメニューを作成するアプリを作成している際に気づいたのですが、メニューショートカットを指定するkeyEquivalentメッセージ。指定するキャラクタが大文字か小文字かで意味あいが変わります。
もちろん、ドキュメントにも明記されているのですがうっかり読み飛ばしてしまい大いに悩みました。最初、"command + C"を表現するのに、
[menuItem setKeyEquivalent:@"C"];
[menuItem setKeyEquivalentModifierMask:NSCommandKeyMask];としていたのですが、これだと"shift + command + C"となってしまうわけです。大文字のキャラクタはそれだけでshiftを指定されたことになるわけです。まあ、Cを入力するためにはshift + Cとタイプするでしょぅてことなのだろうけど...こういうことって、COBOL文化圏の人にはしっくりこないのだろうなぁ。(バリバリCOBOLの人が、趣味でCocoaなんてことないだろうけど。)
そういえば、昔、同僚に「vi(m)で最終行にジャンプするには?」って聞かれたとき、「大文字のG」って答えたことがあって同僚は「???」だったことを思い出します。あぁ、そのときはなんて察しが悪いんだろうと思ったものですが相手ときちんとコミュニケートするという意味では「shift + ジー」と答えるべきだったかなぁなどと思う次第。
ちなみに、setKeyEquivalentに大文字・小文字どちらで指定してもメニューバーに表示される時は大文字になります。(かの方もハマっていたんですね。安心。)










最近のコメント
2 weeks 2 days ago
3 weeks 4 hours ago
3 weeks 6 days ago
3 weeks 6 days ago
6 weeks 6 days ago
6 weeks 6 days ago
13 weeks 20 hours ago
22 weeks 6 days ago
22 weeks 6 days ago
25 weeks 4 days ago