Como você usa o CGEventTapCreate no Swift?

Alguém conseguiu que essa função funcionasse no Swift?

Aqui está uma postagem de referência do SO do ano passado:Usando o CGEventTapCreate Trouble com parâmetros no Swift

Documento da Apple:https://developer.apple.com/library/prerelease/mac/documentation/Carbon/Reference/QuartzEventServicesRef/index.html#//apple_ref/c/func/CGEventTapCreate

Aqui está como o CGEventTapCallBack é definido:

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

Aqui está como eu escrevi o bloco:

let eventTapCallBackBlock : @objc_block
(CGEventTapProxy, CGEventType, CGEventRef, UnsafeMutablePointer<Void>) -> CGEventRef =
{ (eventTapProxy: CGEventTapProxy, eventType: CGEventType, event: CGEventRef, refcon: UnsafeMutablePointer<Void>) in
  return event
}

Então chamei CGEventTapCreate com o parâmetro callback comounsafeBitCast(eventTapCallBackBlock, CGEventTapCallBack.self)

Eu recebo um válidoCFMachPortRef de volta, mas em tempo de execução, recebo uma exceção de violação de acesso no primeiro evento. "Parece" que estou perto de uma solução rápida no seu estado atual de lançamento.

Usando o Xcode Versão 6.4

questionAnswers(1)

yourAnswerToTheQuestion