Objective-C如何将击键转换为ASCII字符码?
Objective-C how to convert a keystroke to ASCII character code?
我需要找到一种方法将用户键入的任意字符转换为 ASCII 表示形式以发送到网络服务。我目前的做法是创建一个查找字典并发送相应的代码。创建此字典后,我发现它很难维护并确定它是否完整:
__asciiKeycodes[@"F1"] = @(112);
__asciiKeycodes[@"F2"] = @(113);
__asciiKeycodes[@"F3"] = @(114);
//...
__asciiKeycodes[@"a"] = @(97);
__asciiKeycodes[@"b"] = @(98);
__asciiKeycodes[@"c"] = @(99);
是否有更好的方法从用户键入的任意键获取 ASCII 字符代码(使用标准 104 键盘)?
使用 stringWithFormat
调用并传递 int 值。
这似乎适用于大多数键盘键,但不确定功能键和 return 键。
NSString* input = @"abcdefghijklkmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*()_+[]\{}|;':\"\,./<>?~ ";
for(int i = 0; i<input.length; i ++)
{
NSLog(@"Found (at %i): %i",i , [input characterAtIndex:i]);
}
Objective C 具有基本 C 原始数据类型。你可以做一个小技巧。您想要将 keyStroke 设置为 char
,然后将其转换为 int
。 c 中从 char
到 int
的默认转换是 char
的 ascii 值。这是一个简单的例子。
char character= 'a';
NSLog("a = %ld", (int)test);
控制台输出=a = 97
反之,将 int 转换为 char;
int asciiValue= (int)97;
NSLog("97 = %c", (char)asciiValue);
控制台输出=97 = a
或者,您可以在 int 或 char 的初始化中进行直接转换,并将其存储在变量中。
char asciiToCharOf97 = (char)97; //Stores 'a' in asciiToCharOf97
int charToAsciiOfA = (int)'a'; //Stores 97 in charToAsciiOfA
我需要找到一种方法将用户键入的任意字符转换为 ASCII 表示形式以发送到网络服务。我目前的做法是创建一个查找字典并发送相应的代码。创建此字典后,我发现它很难维护并确定它是否完整:
__asciiKeycodes[@"F1"] = @(112);
__asciiKeycodes[@"F2"] = @(113);
__asciiKeycodes[@"F3"] = @(114);
//...
__asciiKeycodes[@"a"] = @(97);
__asciiKeycodes[@"b"] = @(98);
__asciiKeycodes[@"c"] = @(99);
是否有更好的方法从用户键入的任意键获取 ASCII 字符代码(使用标准 104 键盘)?
使用 stringWithFormat
调用并传递 int 值。
这似乎适用于大多数键盘键,但不确定功能键和 return 键。
NSString* input = @"abcdefghijklkmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*()_+[]\{}|;':\"\,./<>?~ ";
for(int i = 0; i<input.length; i ++)
{
NSLog(@"Found (at %i): %i",i , [input characterAtIndex:i]);
}
Objective C 具有基本 C 原始数据类型。你可以做一个小技巧。您想要将 keyStroke 设置为 char
,然后将其转换为 int
。 c 中从 char
到 int
的默认转换是 char
的 ascii 值。这是一个简单的例子。
char character= 'a';
NSLog("a = %ld", (int)test);
控制台输出=a = 97
反之,将 int 转换为 char;
int asciiValue= (int)97;
NSLog("97 = %c", (char)asciiValue);
控制台输出=97 = a
或者,您可以在 int 或 char 的初始化中进行直接转换,并将其存储在变量中。
char asciiToCharOf97 = (char)97; //Stores 'a' in asciiToCharOf97
int charToAsciiOfA = (int)'a'; //Stores 97 in charToAsciiOfA