【发布时间】:2025-11-22 22:50:02
【问题描述】:
我有一个 SproutCore 窗格——具体来说是一个 PalettePane——它包括一个绑定到屏幕上其他位置的对象的表单。窗格导致对象删除交互出现问题。我希望它的工作方式是:
- 如果文本输入字段处于焦点位置,则退格/删除键应应用于这些字段(即编辑文本)
- 如果没有文本输入字段有焦点,退格/删除键应该删除与表单相关的选定对象。 (当用户选择了一个对象时,窗格就会出现,所以如果该窗格存在,那么就有一个选定的对象。)
到目前为止,我得到了这些行为中的一种或另一种,从来没有两者兼而有之。如果我在窗格中设置acceptsKeyPane: YES,我会得到应用于文本字段的退格/删除键,但当文本字段没有焦点时不会删除所选对象。如果我使用acceptsKeyPane: NO,当我编辑文本字段并按退格键时,它会删除我试图编辑的对象。
雪上加霜的是,在带有 acceptsKeyPane: YES 的 Firefox 中,退格键被浏览器捕获并解释为后退按钮单击,这会让用户感到沮丧。
我查看了root_responder.js 代码,看起来 SproutCore 为 Firefox 处理退格键的方式不同,但如果我可以如上所述处理它们,那么 FF 和其他浏览器之间的区别应该没有实际意义。
ETA 2011 年 5 月:阅读此处的答案时请记住,用于 1.5、1.6 及更高版本的 SproutCore API 可能与此不同。
【问题讨论】:
-
考虑查看sproutcore@googlegroups.com 的邮件列表或#sproutcore 的IRC 频道。 (如果我能提出建议,我也会在这里回答。)
-
谢谢,彼得 - 我在 IRC 频道问了这个问题,并听到了蟋蟀的啁啾声。邮件列表是昨天才开始的,不是吗?
标签: keyboard keyboard-events sproutcore