現在、Luaを使ってApple製のplistファイルの内容を読み込もうとしています。NSEventをObjective-CからLuaに翻訳する
plistには、 'modifierマスク'を使用してキーボードショートカットが含まれています。他
-- modifierMask = 131072 (shift)
-- modifierMask = 262144 (control)
-- modifierMask = 524288 (option)
-- modifierMask = 1048576 (command)
-- modifierMask = 786432 (control + option)
-- modifierMask = 393216 (control + shift)
-- modifierMask = 1310720 (control + command)
-- modifierMask = 1572864 (option + command)
-- modifierMask = 655360 (shift + option)
-- modifierMask = 1179648 (command + shift)
-- modifierMask = 917504 (control + shift + option)
-- modifierMask = 1703936 (option + command + shift)
-- modifierMask = 1835008 (control + option + command)
誰かがありますが、私はAppleがマスク値を計算しているかを正確にわからないよ - 一つずつをテストすることにより
は、私がmodifierMask値以下に示す修飾キーと一致することを決定しました
Modifier Flags
The following constants (except for NSDeviceIndependentModifierFlagsMask) represent device-independent bits found in event modifier flags:
Declaration
OBJECTIVE-C
enum {
NSAlphaShiftKeyMask = 1 << 16,
NSShiftKeyMask = 1 << 17,
NSControlKeyMask = 1 << 18,
NSAlternateKeyMask = 1 << 19,
NSCommandKeyMask = 1 << 20,
NSNumericPadKeyMask = 1 << 21,
NSHelpKeyMask = 1 << 22,
NSFunctionKeyMask = 1 << 23,
NSDeviceIndependentModifierFlagsMask = 0xffff0000U
};
これは有望に見える、しかし、私はObjective-Cのについて何も知らないので、誰もができれば私は思っていた:最も可能性が高い修飾マスクがNSEvent modifier flagsに一致し、次のObjective-Cの例を供給することを示唆しました私を助けてくださいこれらのObjective-C宣言をLua内で使用できるものに置き換えますか?基本的には、modifierMask(つまり '131072')を入力し、そのmodifierMaskが意味するもの(つまり、 'shift')を示す結果を返すLua関数を作成します。何か案は?
ありがとうございます!
あなたは "との取引" とはどういう意味ですか?シフト値を整数に変換する方法をお探しですか?あるいは、これらの値を使ってplistの数値を比較する方法を探していますか? – Avi
申し訳ありませんが、もっと明確にすべきでした。基本的には、plistからmodifierMask(つまり131072)を入力してその値を返すことができる関数を作成したいと考えています(シフトボタンが押されています)。 –