如何解决GNOME-Shell:如何使用 Escape 键关闭 ModalDialog
我不是程序员,我只是在学习。我正在尝试使用 GJS 和 GNOME-Shell-extensions 作为示例来学习 javascript。我正在尝试构建一个扩展,它有一个带有关闭按钮的 ModalDialog。从按钮开始,一切都没有问题地关闭,但我想添加使用 Escape 键关闭它的能力。 在代码中我有一个这样的信号处理程序
this.connect('key-press-event',() => {
但至少杀了我,我不明白如何处理这个信号。我在这里看到了几个类似的问题,我以不同的方式尝试了答案选项,但我有错误或未定义的错误,救救我,我的头爆炸了。请向我解释我需要如何使用“按键事件”。
我找到了一个这样的解决方案并且它有效。前提是有一个用于输入文本的字段并且它处于焦点之下。这里的诀窍是 Clutter 是要遵循的。而 Clutter 是一个垃圾堆。
global.stage.set_key_focus(newEntry);
newEntry.connect('key-press-event',(o,e) => {
const symbol = e.get_key_symbol();
if (symbol === Clutter.KEY_Escape) {
log('what you need');
this._closeDialog();
}
else {
log('Not growth again' );
}
});
这里是我无法理解的三件事。为什么第一行(焦点)对我不起作用,对其他人却起作用,“o”和“e”是什么,get_key_symbol() 方法从何而来?
解决方法
试着去here.你可以检查键盘事件代码。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。