Objective c 与NSTextfield类似的键接口生成器

Objective c 与NSTextfield类似的键接口生成器,objective-c,cocoa,Objective C,Cocoa,在过去的两天里,我一直在搜索和阅读一些应该非常简单的东西。很明显,事实并非如此:我正试图说明: 就这些。我知道捷径录音机很旧,我一直在使用MASShortcut的演示。MASShortcut非常棒,但是它有很多代码,看起来很简单 我还搜索了很多苹果的示例代码(希望他们能在Interface Builder之外的其他地方实现这个功能,但到目前为止运气不好) 这给我留下了以下问题: -是否有任何文件可以澄清其中一些内容?或者还有比MASShortcut更简单的解决方案吗 -我自己一直在尝试复制类似

在过去的两天里,我一直在搜索和阅读一些应该非常简单的东西。很明显,事实并非如此:我正试图说明:

就这些。我知道捷径录音机很旧,我一直在使用MASShortcut的演示。MASShortcut非常棒,但是它有很多代码,看起来很简单

我还搜索了很多苹果的示例代码(希望他们能在Interface Builder之外的其他地方实现这个功能,但到目前为止运气不好)

这给我留下了以下问题:

-是否有任何文件可以澄清其中一些内容?或者还有比MASShortcut更简单的解决方案吗

-我自己一直在尝试复制类似IB控件的东西,但我仍然坚持将按下的键“转换”为NSTextField中的字符(或者它是IB中的自定义NSView?)。苹果是否提供了一个简单的方法来实现这一点?因为使用sendEvent捕获所有内容并将其与所有键的列表进行比较似乎需要很多工作,我想知道苹果程序员是如何在上面看到的控件中做到这一点的。如果这是唯一的解决方案,当我使用它时,是否有不同的键盘布局需要我关注

-其他应用程序如何实现此功能,使其在此处可见: 键盘“>

正如您在此处看到的TextWranglers,当我在应用程序中调用“[NSEvent addGlobalMonitorForEventsMatchingMask:]”时,会自动发生这种情况吗

这些问题很多,我只是希望你们中的一个能给我指出正确的方向

提前感谢,,
Frans

上周我自己也在忙着从按键中获取字符,出于某种原因,我偶然发现了两个我以前从未见过的功能:CoreServices中的功能和ApplicationServices中明显相关的功能(看起来像前者的包装器)

看起来这些函数——或者至少是代码——是苹果自己的文本系统用来将按键转换成Unicode字符串显示为文本的

NSEvent
modifierFlags
的简单检查应该足以将修饰符键状态转换为类似字符串的状态⌥⇧⌘:

NSUInteger flags = [theEvent modifierFlags];
NSString * modString = [NSString stringWithFormat:@"%@%@%@%@",
                                (flags & NSControlKeyMask) ? @"^" : @"",
                                (flags & NSAlternateKeyMask) ? @"⌥" : @"",
                                (flags & NSShiftKeyMask) ? @"⇧" : @"",
                                (flags & NSCommandKeyMask) ? @"⌘" : @""];

您可能还想看看Allan Odgaard的博客文章,其中介绍了他为确定按下了哪些键而开发的启发式方法。

谢谢您的反应,也很抱歉我的反应太晚。我将浏览所有这些文档,但不幸的是,我现在没有太多时间。我还发现:,似乎是这样更新的版本,所以我也会研究该项目。一旦我有时间完成所有这些,我会在这里发布它!我希望我是有帮助的。我不太理解你的评论,但是如果我的帖子没有解决你的问题,请不要给它指定复选标记。只需向上投票(数字上方的箭头)表示它是有帮助的。