2014-10-31 63 views
2

我想在Swift中使用CGEventTapCreate等陷阱按鍵。我想這樣做,以便當我的幼兒正在使用Mac的程序時,我可以限制哪些鍵可以做某些事情。我明白我需要啓用輔助技術才能讓CGEventTap工作使用CGEventTapCreate與Swift中的參數故障

我很難理解我需要在Swift中做什麼來獲取調用中的最終參數。一個指針,指向用戶定義的數據:從本質上講,我並不在其通過

REFCON描述石英事件documentation

具體的最終參數理解文檔的一部分。該指針被傳入 回調參數中指定的回調函數。

這裏是我的代碼調用缺少最後一個參數

@IBAction func interceptKeyboard(sender: NSButton) { 


    CGEventTapCreate(kCGSessionEventTap, kCGHeadInsertEventTap, kCGEventTapOptionDefault, CGEventMask((kCGEventKeyDown) | (kCGEventKeyUp)), MyCallBack: kCGHIDEventTap,) 

} 

func MyCallBack(myLocation:CGEventTapLocation) -> Void{ 
    //do Nowt 
} 
+0

比較http://stackoverflow.com/questions/31891002/how-do-you-use-cgeventtapcreate-在-迅速。 – 2016-11-17 10:29:30

回答

1

一陣位前,但我認爲,當你在CGEventTapCallback的類型,你看,這是一個CFunctionPointer:

typealias CGEventTapCallBack = CFunctionPointer<((CGEventTapProxy, 
CGEventType, CGEvent!, UnsafeMutablePointer<Void>) -> Unmanaged<CGEvent>!)> 

在你不能在斯威夫特創造這些的那一刻,讓你不得不動用的Objective-C,創建一個功能存在,那麼它可以調用一個同等功能的雨燕,在這裏看到:

Objective-C Wrapper for CFunctionPointer to a Swift Closure

我最後寫整個的這個東西在Objective-C ...

+0

謝謝你。在很久以前應該已經標記了你。 – nerak99 2016-01-19 22:16:03