NSTextView 和 NSView 关键事件的问题

Issue with NSTextView and NSView key events

提问人:Charlie 提问时间:7/18/2023 更新时间:7/18/2023 访问量:32

问:

我目前有接收事件,在尝试实现它之前,我没有遇到任何问题。NSViewkeyDown:NSTextView

但是,我想使用我的应用程序处理文本输入。这样,我就可以利用各种类似文本的事件(、、等),并在整个应用程序中赋予它们各种用途。moveUp:moveDown:insertText:

在通过以下方式将其添加并添加到响应者之后,我注意到现在,我不再通过 ,但我正在获取文本输入的事件。如果我尝试设置为 for ,现在我无法从 接收任何事件,但我确实在 上再次获得事件。NSTextViewaddSubview:keyDown:NSViewinsertText:acceptsFirstResponderTrueNSViewNSTextViewkeyDown:NSView

如何让这两者协同工作?我希望收到上述事件,以及来自 的事件。换句话说,我希望事件沿着响应者链(和)向下移动,我该如何实现这一目标?我尝试覆盖 of,但似乎一旦您调用它就会消耗事件并且不会前往 .NSTextViewkeyDown:NSViewNSViewNSTextViewkeyDown:NSTextViewinterpretKeyEvents:NSView

我对可可事件不是很熟悉,但我还没有找到解决这个问题的方法。任何帮助将不胜感激。

macOS Cocoa 事件 NSView NSTextView

评论

0赞 Willeke 7/18/2023
是否希望文本视图和自定义视图都响应相同的按键事件?
0赞 Charlie 7/19/2023
我真的不需要 from 可以处理它,但如果我需要两者都让它工作,那很好,我可以在程序本身中手动过滤掉它。keyDown:NSTextViewNSView
0赞 Willeke 7/19/2023
那么设置以解决问题?你从哪里打电话吗?acceptsFirstResponderNSViewtruesuperkeyDown
0赞 Charlie 7/20/2023
它只解决事件。当我这样做时,我仍然没有得到事件。换句话说,如果是第一个响应者,则不会获取事件,反之亦然。我什至需要的全部原因只是收集正在插入/按下的 unicode 字符,因为这些信息仅从我所阅读的内容中得到松散的支持。keyDown/keyUp:insertText:NSViewNSTextViewNSTextViewkeyDown:
0赞 Charlie 7/20/2023
此外,我还需要其他类似文本的事件,例如 etc,它们似乎只是 的一部分。insertNewLine:NSTextView

答: 暂无答案