我设置了一个小型测试应用程序,将App Delegate设置为NSTextView的委托。
有了这个,我提供了以下NSTextView委托方法:
- (BOOL)textView:(NSTextView *)aTextView shouldChangeTextInRange:(NSRange)affectedCharRange replacementString:(NSString *)replacementString
我想确定哪个输入源生成replacementString
。
主要是,我有兴趣了解replacementString
是来自角色查看器(编辑>特殊字符...)还是来自键盘。
我已经研究过使用Carbon Text Input API,它可以为您提供有关字符查看器是“被选中”的信息(在屏幕上与屏幕外),但我找不到一种方法来确定它是否负责生成文字字符串。
这样做的原因是我正在编写一个简单的插件,利用字符查看器将Unicode字符转换为HTML实体。字符查看器将所有字符放在一个位置,并且可在操作系统级别使用。似乎比使用我自己更有意义。
可以在Cocoa或Carbon中完成吗?
非常感谢任何帮助。
谢谢。
答案 0 :(得分:0)
从以下代码中找到了一些关于文本输入源的知识:
CFArrayRef TISCreateInputSourceList (
CFDictionaryRef properties,
Boolean includeAllInstalled
);
从以下link中了解到这一点,这也可能对您有所帮助。欢呼声。