Cocoa How to becomeFirstResponder?

· CocoamacOS · 986字

遇到一个问题,就是我需要在窗口初始化完成之后开始接收键盘事件,找了很多文章,大部分都是说要让视图成为第一响应者才能触发,否则需要手动点击一下视图才行。
emmmmmm...大家都这么说,倒是来个人告诉我怎么becomeFirstResponder呀!

About FirstResponder

官方有一段描述是这么说的:

The first responder is usually the first object in a responder chain to receive an event or action message. In most cases, the first responder is a view object that the user selects or activates with the mouse or keyboard.

第一响应者通常是响应者链中接收事件或动作消息的第一个对象。在大多数情况下,第一响应者是用户使用鼠标或键盘选择或激活的视图对象。

that's right~

如果还有其他疑问可以参考官方关于事件处理的文档:Event Handing Basics

About Code

最终实现这个功能的是 window.makeFirstResponder(_ sender: Any?)

这个 window, 如果你在 NSViewController 中可以使用 self.view.window
否则可以直接拿全局的 NSAppDelegate 中的 window

如果不需要响应者了,传入nil即可

需要在viewDidAppearviewWillDisappear中使用

最后一次编辑于 2019 08 07 09:52:49
如果你有任何疑问,这个邮箱可以联系到我:aS4xMjE0QHlhaG9vLmNvbQ==