GCController 框架 (OSX) 不生成通知

GCController framework (OSX) not generating notifications

我正在尝试将 GCController 框架集成到我的项目中。我对 Objective-C 不太熟悉,所以请原谅我对它应该如何工作的无知。

我有一个扩展 NSOpenGLView 的 class,它为各种控制器通知注册观察者方法,如下所示:

-(void)awakeFromNib
{
    // Do some stuff

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(controllerStateChanged) name:GCControllerDidConnectNotification object:nil];

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(controllerStateChanged) name:GCControllerDidDisconnectNotification object:nil];
}

我定义了一个超级简单的处理程序:

- (void)controllerStateChanged {
   NSLog (@"something happened, let's check it out\n");
}

问题是,这些 events/notifications 似乎永远不会触发 - 当我检查 [GCController 控制器] 时,它完全是空的。

当然,按理说,如果没有控制器,就不会发生事件——所以我可能做错了什么?

或者,也许出于某种原因——我的控制器根本无法生成所需的事件(我使用的是 PS4 控制器,该控制器已在 OS 中注册,无论是无线还是通过 USB ,所以我不确定我在这里遗漏了什么)。

我还需要在其他地方启用这些通知吗?我需要以某种方式初始化 GCController 框架吗?

原来GCController框架只支持MFi(Made For iPod, Made For iPhone, Made For iPad)控制器产品

对于希望支持非 MFi 控制器的任何人,您需要通过 IOKit 与 HID 连接。或者使用相当优秀的DDHIDLib代替