Le 9 mai 09 à 22:29, kvic...@pobox.com a écrit :

At 9:14 PM -0700 5/8/09, glgue...@amug.org wrote:
ken wrote:

the only way i can think to perform this conversion is to itereate over the virtual key codes 0-127 (with various combinations of shift and option keys) until i find the one that matches the user input character.

and while this is certainly doable, it feels awfully clumsy (and potentially slow).

is there a better way?


Create the inverse mapping once, e.g. in an NSDictionary, then use that mapping thereafter, instead of searching repeatedly.

This assumes there is an unambiguous inverse mapping, which ain't necessarily so. For example, a keyboard with a numpad has duplicate key legends for all numpad keys. I think these numpad keys have different keycodes than the keys in the main alphanum layout. So given a character like "1" (or "*", "=", etc.) it's not possible to
reverse it to a single unique keycode.

greg,
thanx for the reply. and yes i am aware of the possible duplicates. i was just hoping for a better way other that iterating via UCKeyTranslate (which turns out to be fast enough, so probably no need to cache via a dictionary or otherwise).

An alternative would be to parse the UCHR resource yourself instead of using UCKeyTranslate.

http://developer.apple.com/documentation/Carbon/reference/Unicode_Utilities_Ref/uu_app_uchr/uu_app_uchr.html


_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to