前回紹介した AppleSpecificCodePoints を実際に表示させてみた。
CocoaDev: AppleSpecificCodePoints
コードはこんな感じ。
static const struct { NSString* name; unichar code; } KeyGlyphs[] =
{
{ @"pb_enter", 0x2324 },
{ @"left", 0x2190 },
{ @"up", 0x2191 },
{ @"right", 0x2192 },
{ @"down", 0x2193 },
{ @"ib_left", 0x21E0 },
{ @"ib_up", 0x21E1 },
{ @"ib_right", 0x21E2 },
{ @"ib_down", 0x21E3 },
{ @"home", 0x2196 },
{ @"end", 0x2198 },
{ @"return", 0x21A9 },
{ @"pageup", 0x21DE },
{ @"pagedown", 0x21DF },
{ @"tab", 0x21E5 },
{ @"backtab", 0x21E4 },
{ @"shift", 0x21E7 },
{ @"control", 0x2303 },
{ @"enter", 0x2305 },
{ @"command", 0x2318 },
{ @"modifier", 0x2325 },
{ @"backspace", 0x232B },
{ @"delete", 0x2326 },
{ @"escape", 0x238B },
{ @"numlock", 0x2327 },
{ @"help", 0x225F },
};
- (void)awakeFromNib
{
for(int i=0; i < sizeof(KeyGlyphs)/sizeof(KeyGlyphs[0]); i++) {
NSLog(@"0x%x : %C : %@", KeyGlyphs[i].code, KeyGlyphs[i].code, KeyGlyphs[i].name);
}
}
実行してみよう。
デバッガコンソールへ出力された結果は次の通り。
なるほど一通り揃っているようだ。
- - - -
キー値を文字コードに変換する関数もあるようだが、今のところ分かった限りでは最低でも特殊キー(ESCや矢印)は自前で表(キーコード対Unicode)を用意する必要がありそうだ。
となると以前紹介したように始めから全コードを対象にした表を持っていた方がいい気がしてきた。