0

我设置了一个小型测试应用程序,将 App Delegate 设置为 NSTextView 的代理。

有了它,我提供了以下 NSTextView 委托方法:

- (BOOL)textView:(NSTextView *)aTextView shouldChangeTextInRange:(NSRange)affectedCharRange replacementString:(NSString *)replacementString

我想确定是什么输入源生成replacementString.

主要是,我有兴趣找出replacementString是来自字符查看器(编辑>特殊字符...)还是来自键盘。

我已经研究过使用碳文本输入 API,它可以为您提供有关字符查看器是否被“选中”(在屏幕上与屏幕外)的信息,但我找不到确定它是否负责生成文本字符串的方法。

这样做的原因是我正在编写一个简单的插件,它利用 Character Viewer 将 Unicode 字符转换为 HTML 实体。Character Viewer 将所有字符集中在一个位置,并且在操作系统级别可用。似乎使用它比编写我自己的更有意义。

这可以在 Cocoa 或 Carbon 中完成吗?

任何帮助将不胜感激。

谢谢你。

4

1 回答 1

1

从以下代码中找到了一些关于文本输入源的知识:

CFArrayRef TISCreateInputSourceList (
   CFDictionaryRef properties,
   Boolean includeAllInstalled
);

苹果文档

从以下链接中对此有所了解,这也可能对您有所帮助。干杯。

于 2012-06-18T19:01:47.713 回答