objective-c – 在有意义的键组合上缺少keyUp事件(例如“选择直到行首”)

objective-c – 在有意义的键组合上缺少keyUp事件(例如“选择直到行首”),第1张

概述我有一个NSTextField,它用作扩展的NSTextFieldCell,它创建一个自定义字段编辑器,拦截并记录关键事件. (了解关键事件对于应用程序很重要,但是文本字段仍然应该像往常一样工作,通过调用[super …]方法).这是官方文档对此问题的建议. 我在键入时确实收到了大多数keyUp事件,但在某些情况下我没有得到一个.当按下一个附有动作的组合键时,似乎会发生这种情况.例如. Cmd-S 我有一个NSTextFIEld,它用作扩展的NSTextFIEldCell,它创建一个自定义字段编辑器,拦截并记录关键事件. (了解关键事件对于应用程序很重要,但是文本字段仍然应该像往常一样工作,通过调用[super …]方法).这是官方文档对此问题的建议.

我在键入时确实收到了大多数keyUp事件,但在某些情况下我没有得到一个.当按下一个附有动作的组合键时,似乎会发生这种情况.例如. Cmd-Shift-left未发出keyUp事件.该输入使得从点到开头的整行显示为选中,但是在收到keyDown时已经显示.

缺少它的情况下,当查看-performKeyEquivalent时:通过覆盖它,我看到它被调用.为什么keyUp没有交付?

解决方法 这就是事件架构的设置方式.发送密钥等效消息比发送作为其中一部分的各种密钥的消息更受欢迎.特别参见 “Handling Key Events,”,“处理关键等价物”.看起来您可以继承NSApplication并覆盖-sendEvent:来调度这些事件,但是您可能会破坏比添加更多的功能. 总结

以上是内存溢出为你收集整理的objective-c – 在有意义的键组合上缺少keyUp事件(例如“选择直到行首”)全部内容,希望文章能够帮你解决objective-c – 在有意义的键组合上缺少keyUp事件(例如“选择直到行首”)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1025635.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-23
下一篇2022-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存