【发布时间】:2015-03-04 17:02:31
【问题描述】:
我的应用程序启动了一个具有多个按钮的模式表。其中之一是默认按钮(等效键 \r),按键盘上的 ENTER 键会按预期关闭工作表。如果用户按下 ESC 键,我希望也能达到相同的效果。所以 either ENTER 或 ESC 应该是按钮的等效键。如何实现?
【问题讨论】:
标签: macos cocoa interface-builder
我的应用程序启动了一个具有多个按钮的模式表。其中之一是默认按钮(等效键 \r),按键盘上的 ENTER 键会按预期关闭工作表。如果用户按下 ESC 键,我希望也能达到相同的效果。所以 either ENTER 或 ESC 应该是按钮的等效键。如何实现?
【问题讨论】:
标签: macos cocoa interface-builder
见-[NSResponder cancelOperation:],自动绑定到转义键:
此方法绑定到 Escape 和 Command-。 (句号)键。键窗口首先在视图层次结构中搜索其等效键为 Escape 或 Command-.(无论输入哪个键)的视图。如果这些视图都没有处理等效键,则窗口会向第一个响应者发送默认操作消息 cancelOperation:,然后消息从那里向上传播到响应者链。
换句话说,您可以通过在应用程序的响应程序链中的某处实现-cancelOperation: 来处理转义键,例如窗口控制器。
【讨论】:
-performKeyEquivalent: 来处理 Return 和 Escape。 cocoabuilder.com/archive/cocoa/…