私は、 osxでハンマースプーンという自動化ソフトウェアを使用しています。
ハンマースプーンのコンソールで次のコードを使用すると、win
nil になります。
> 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)
ハンマースプーンは次のエラーを出します:
/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 ヨセミテ、バージョン 10.10.5、ハンマースプーン 0.9.43 を持っています。
アップデート:
エラーの解決策を見つけました。これは、osx のプライバシー設定によるものです。
解決:
Prefences > Security > Privacy > Allow Apps: Hammerspoon
hs.window.focusedWindow()
それでも、変数に割り当てられていない場合に何かが返され、変数に割り当てられたときに返される理由がわかりませんnil
。