Dpad input from various controllers

Hi, I have been trying to use various controllers - Nintendo switch joycon, xbox one controller and one specifically purchased for Mac compatability. Using GCController and either micropad or gamepad on all these controllers I can see and respond all buttons a, b, x, y, and left and right shoulder buttons, but nothing from DPad?


for controller in GCController.controllers(){

if controller.microGamepad != nil{

controller.microGamepad?.reportsAbsoluteDpadValues = true

controller.microGamepad?.valueChangedHandler = { (gamepad, element) in

if let dpad = element as? GCControllerDirectionPad {

print("DPAD : \( dpad )")

} else {

print("BUTTON : \( element )")

}

}

}

}


Is there anything I should be doing or something I am missing?


Thank you