【问题标题】:Switch between open windows in Pharo在 Pharo 中打开的窗口之间切换
【发布时间】:2013-07-26 16:05:25
【问题描述】:

在鹦鹉螺快捷键说明中搜索后:

我在 forums 中搜索了一些关于此的内容,但在 Pharo v3 中不起作用。

我仍在寻找一个快捷方式,可以用来在打开的窗口之间轻松切换,例如 SO 中的 alt + tab/cmd + tab。

有人知道怎么做吗?

【问题讨论】:

  • Nautilus 只是一个浏览代码的工具,所以你得到的逻辑上是对这个工具本地快捷方式的描述......

标签: smalltalk pharo


【解决方案1】:

正在进行中。目前,组合键似乎尚未确定/实施。
当我探索与世界相关的键映射时,

World kmDispatcher explore.

我只看到 CMD+K 报告为绑定到 [ self openAndCommitToMonticello ] 的 directKeymaps 的一部分。
如果我浏览openAndCommitToMonticello 的发件人,我会发现一些咒语:

Komitter class>>initialize
    World 
        bindKeyCombination: $k command
        toAction: [ self openAndCommitToMonticello ]

显然CMD+K必须理解为小写$k...(?)

通过窗口导航的消息是SystemWindow class>>sendTopWindowToBack(不要问我是怎么发现的……)。
有两个发件人

  1. 旧的键盘映射基础设施PasteUpMorph>>defaultDesktopCommandKeyTriplets
  2. 一个窗口菜单(由右上下三角触发)WorldState class>>windowsOn:

似乎分配的键是\...所以我们可以尝试再次挂钩这个键绑定。
由于在我的法语 mac 键盘上使用起来很不方便(CMD+\ 表示按住四个键!!!),我会用右箭头来做。

如果您查看KMSingleKeyCombination class>>specialKeys,您会看到右箭头的代码是 29。

让我们试试这个:

World 
    bindKeyCombination: 29 command
    toAction: [ System sendTopWindowToBack ].

瞧,您将获得一个新的导航快捷方式。

【讨论】:

  • 几乎完美。在上一个版本(Pharo 3 betha)中,我可以使用:[SystemWindow sendTopWindowToBack]. instead of: [ System sendTopWindowToBack ]。
  • 谢谢,我从这个答案中得到了一个可行的解决方案,用于制作全局键盘快捷键,但我不明白为什么。当我检查World 时,我没有看到bindKeyCombination 的方法。这是在哪里定义的?
  • @mydoghasworms 哪个 Pharo 版本? Pharo 正在快速发展。现在是7.0...
  • @aka.nice 抱歉,是的,Pharo 7.0。但是,我只是再看一遍,发现它是 Morph 中的一个方法选择器。这是否意味着它只能在我设置后打开的任何新窗口上用作全局快捷方式? IE。该事件由 Morph 的焦点处理,对吧?
【解决方案2】:

来自 Pharo Slack 上的 Denis Kudriashov,

https://github.com/juliendelplanque/Mirage

在 Pharo 5.0 中提供人体工程学支持。

可从目录中加载。

【讨论】:

  • 这真是太棒了!我还确认它适用于 Pharo 5.0。谢谢! :)
【解决方案3】:

在 Pharo 3.0 中 - Alt+tab 可以正常工作(连续按下它会不断翻阅窗口,按 enter 或空格会选择显示的窗口)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-28
    • 2020-12-02
    • 2016-03-24
    • 2017-07-11
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    相关资源
    最近更新 更多