NSEvent有一个characters属性,它是一个对键上/下事件有效的NSString。在什么条件下,字符串长度可以大于1?
我能找到的唯一条件是NSEvent对应于IME(输入法编辑器)的输入。
编辑 - 我知道代理配对的情况,但在问这个问题时它以某种方式滑出我的脑海。当没有的时候,我对这个案子更感兴趣。字素(字符)本身大于1。
答案 0 :(得分:1)
在什么条件下,字符串长度可以大于1?
如果你有一个键盘/输入法可以输入任何需要UTF-16代理对的单个字符,例如a(Unicode线性B音节B008 A),然后length
将为2.这是因为length
返回16位代码单元的数量,而不是字符数。
答案 1 :(得分:0)
在Mac OS X中使用字符序列对高unicode代码点进行编码。尝试。
答案 2 :(得分:0)
您还可以通过以编程方式发布的事件来获取此信息。 CGEventKeyboardSetUnicodeString()
允许调用者将任意字符串附加到键事件。