gpt4 book ai didi

macos - Lua Hammerspoon : hs. window.focusedWindow() 分配给变量时为零

转载 作者:行者123 更新时间:2023-12-04 01:51:55 24 4
gpt4 key购买 nike

我使用名为 hammerspoon 的自动化软件在 osx 上。

当我在hammerspoon 的控制台中使用以下代码时,win为零:

> local win = hs.window.focusedWindow()
> win
nil

但实际上该函数返回一些值:
> hs.window.focusedWindow()
hs.window: Hammerspoon Console (0x60000025f798)

这种奇怪的行为会破坏所有窗口移动/调整大小的功能,例如:
hs.hotkey.bind({"cmd", "alt", "ctrl"}, "H", function()
local win = hs.window.focusedWindow()
local f = win:frame()

f.x = f.x - 10
win:setFrame(f)
end)

Hammerspoon 给出了这个错误:
/Users/mertnuhoglu/.hammerspoon/init.lua:6: attempt to index a nil value (local 'win')
stack traceback:
/Users/mertnuhoglu/.hammerspoon/init.lua:6: in function </Users/mertnuhoglu/.hammerspoon/init.lua:4>
stack traceback:

我不知道这个问题是我的电脑还是其他什么原因造成的。

我有 osx yosemite,版本 10.10.5 和hammerspoon 0.9.43。

更新:

我找到了错误的解决方案。这是由于 osx 的隐私设置。

解决方案:
Prefences > Security > Privacy > Allow Apps: Hammerspoon

但是,我还是不明白为什么 hs.window.focusedWindow()如果它没有分配给变量,则返回一些东西,它返回 nil当它被分配给一个变量时。

最佳答案

Hammerspoon 将每一行作为它自己的 block 执行,因此局部变量仅在该 block 中可用,并且在 block 执行后不再可用。

如果要在执行 block 后访问变量,请将它们设为全局,即删除“local”关键字。

关于macos - Lua Hammerspoon : hs. window.focusedWindow() 分配给变量时为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34743870/

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