将字符转换为键盘码的代码
时间: 2009-06-11 20:08 点击: 次
以下这段代码可以将字符串转换为键盘码,以备需要时用到。 - ( int ) keyCodeForCharacter : ( NSString * ) character { if ( ! [ character length ] ) return -1 ; char code ; BOOL shift, alt; if ( Ascii2Virtual ( ( char
以下这段代码可以将字符串转换为键盘码,以备需要时用到。
-
- (int)keyCodeForCharacter: (NSString*)character {
-
if(![character length]) return -1;
-
-
char code;
-
BOOL shift, alt;
-
if(Ascii2Virtual( (char)[character characterAtIndex: 0], &shift, &alt, &code)) {
-
return code;
-
}
-
return -1;
-
}
-
BOOL Ascii2Virtual(char pcar, BOOL *pshift, BOOL *palt, char *pkeycode)
-
{
-
KeyboardLayoutRef keyboard;
-
const void *keyboardData; // keyboard layout data
-
UInt16 nbblocs;
-
char *modblocs, *blocs, *deadkeys;
-
int ix, ifin, numbloc, keycode;
-
-
BOOL shift, alt;
-
// get the current keyboard
-
if(KLGetCurrentKeyboardLayout(&keyboard)) return NO;
-
// get the description of the current keyboard layout
-
if(KLGetKeyboardLayoutProperty(keyboard, kKLKCHRData, &keyboardData)) return NO;
-
// get pointer early numbers of blocks for each combination of modifiers
-
modblocs = ((char *)keyboardData) + 2;
-
// get number of blocks keycode->ascii
-
nbblocs = *((UInt16 *)(keyboardData + 258));
-
// get pointer early blocks keycode-> ascii
-
blocs = ((char *)keyboardData) + 260;
-
// determining the size of all tables keycode-> ascii a scanner
-
ifin = nbblocs*128;
-
// determining pointer early in the tables of dead keys
-
deadkeys = blocs+ifin;
-
// Now it runs blocks keycode-> ascii to find the car ascii
-
for (ix=0; ix<ifin ; ix++)
-
{
-
if (
顶一下(0)
0%
踩一下(0)
0%
打印 上一篇:方便实现逻辑功能的代码 发表评论
本类文章点击排行榜
- [06-18] Cocoa夜未央第一期 Cocoa的基本
- [06-18] UITableView实例教程:创建Tabl
- [06-18] Cocoa夜未央第三期 MVC,界面编
- [06-18] Cocoa夜未央第二期 xcode及基本
- [06-02] XCode自带Source Control Manager(SC
- [07-27] Xcode 4 新特性介绍
- [06-11] Google的开源苹果软件更新框架
- [06-11] Leopard轻松编程:帮你节省代码
- [06-11] WebKit的基本用法
推荐内容
最近更新
- [07-27] Xcode 4 新特性介绍
- [07-23] UTF-8 和 GBK 的 NSString 相互转化的方法
- [07-09] NSSlider控件出现残像的解决方法
- [07-07] 调用系统现成importer来获取文件metadata的方法
- [06-30] 实现鼠标拖拽删除对象时烟雾缭绕效果的代码
- [06-28] QuickLook 调用示例代码
- [06-22] Cocoa里的字符串,NSString介绍
- [06-22] Cocoa里参数传递引用的方法
- [06-21] 在 xcode中进行条件编译的方法
相关文章
- [05-18] Javascript 面向对象编程(一):封装
- [03-31] 获取光驱路径的代码
- [03-19] 多点触控程序的编写方法
- [03-17] 程序中检测CD插入的代码
- [03-13] 制作Mac程序的Splash Screen
- [03-13] 在Label上增加点击事件及下划线的方法
- [02-05] [系统控件重绘教程(二)]重绘NSButton
- [02-03] XCode模板
- [06-11] iLife 08风格的Source List代码
- [06-11] Cocoa的Zip归档读写框架

XCode自带Source Control Manager(SCM)以及SnapShots用法
XCode、Cocoa开发中使用第三方dylib的方法
[系统控件重绘教程(二)]重绘NSButton
创建Xcode自定义模板的图文教程
在Cocoa中使用TagLib获取歌曲ID3信息
iLife 08风格的Source List代码