如何处理 Cocoa 应用程序中的 ESC 键?
我制作了一个切换到全屏模式的应用程序。我想使用 ESC 键退出全屏模式,但是在运行时删除了 IB 中将菜单项绑定到 ESC 键的操作。如何将 ESC 键绑定到菜单项?
I made an app switching to full screen mode. I want to use ESC key to escaping fullscreen mode, but binding menu item to ESC key in IB is removed at runtime. How can I keep ESC key binding to a menu item?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
在 Cocoa 中处理转义键的首选方法是这样的 @Josh Caswell 说道。
Preferred way to handle escape key in Cocoa is this as like @Josh Caswell said.
捕获键盘事件的一种方法涉及子类化:
- (void) keyDown:(NSEvent *)theEvent
添加到子类实现中。子类看起来像:
MySubclass.h
MySubclass.m
这不会将
ESC
键绑定到菜单项,但它确实为您提供了等效的功能(以及更多的灵活性,因为您可以拦截所有键盘事件)。One way to capture keyboard events involves subclassing:
- (void) keyDown:(NSEvent *)theEvent
to the subclass implementation.The subclass looks something like:
MySubclass.h
MySubclass.m
This doesn't bind the
ESC
key to the menu item, but it does give you equivalent functionality (and a bit more flexability since you can intercept all keyboard events).许多人尝试实现 esc 键功能。响应者链中有cancelOperation来处理逃逸事件。
Many people try to implement esc key functionality. There is cancelOperation in the responder chain to handle escape events.
我需要在按下 ESC 时避免 WKWebView 崩溃(?),所以我对其进行了子类化,并添加了:
I needed to dodge WKWebView crashes when ESC is pressed(?) so I sub-class it, and added: