gpt4 book ai didi

keyboard - 在 SproutCore 中捕获删除/退格键

转载 作者:行者123 更新时间:2023-12-03 13:38:04 24 4
gpt4 key购买 nike

我有一个 SproutCore Pane ——特别是一个 PalettePane——它包括一个绑定(bind)到屏幕上其他位置的对象的表单。 Pane 导致对象删除交互出现问题。我希望它的工作方式是:

  • 如果文本输入字段处于焦点位置,则退格/删除键应应用于这些字段(即编辑文本)
  • 如果没有文本输入字段具有焦点,则退格/删除键应删除与表单相关的选定对象。 (当用户选择了一个对象时, Pane 就会出现,所以如果 Pane 存在,那么就有一个选定的对象。)

  • 到目前为止,我得到这些行为中的一种或另一种,从来没有两者兼而有之。如果我设置 acceptsKeyPane: YES在 Pane 中,我将退格/删除键应用于文本字段,但当文本字段没有焦点时,不会删除所选对象。如果我使用 acceptsKeyPane: NO ,当我编辑文本字段并按退格键时,它会删除我试图编辑的对象。

    雪上加霜,在 Firefox 中使用 acceptsKeyPane: YES退格键被浏览器捕获并解释为后退按钮单击,这会让用户感到沮丧。

    我看过 root_responder.js代码,看起来 SproutCore 为 Firefox 处理退格键的方式不同,但如果我可以如上所述处理它们,那么 FF 和其他浏览器之间的区别应该没有实际意义。

    ETA 2011 年 5 月:在此处阅读答案时请记住,用于 1.5、1.6 及更高版本的 SproutCore API 可能与此不同。

    最佳答案

    以下是我们最终完成的方式:

  • 创建 Pane 时,我们调用了 becomeFirstResponder()在上面。
  • 我们添加了 acceptsFirstResponder: YES到它的 View 定义。
  • 然后我们在 View 定义中添加:

  • keyDown:函数(evt){
    返回 this.interpretKeyEvents(evt) ?是:否;
    },

    deleteBackward:函数(){
    this.get('objectToEdit').destroy();
    返回是;
    },

    删除转发:函数(){
    this.get('objectToEdit').destroy();
    返回是;
    }

    ...这就是诀窍。

    关于keyboard - 在 SproutCore 中捕获删除/退格键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3702880/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com