1

GCController フレームワークをプロジェクトに統合しようとしています。私は Objective-C にあまり詳しくないので、これがどのように機能するかについて無知であることをお許しください。

次のように、さまざまなコントローラー通知のオブザーバー メソッドを登録する NSOpenGLView を拡張するクラスがあります。

-(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");
}

問題は、これらのイベント/通知が起動しないように見えることです。[GCController controllers] を調べると、完全に空です。

もちろん、コントローラーがなければイベントも発生しないのは当然のことです。

または、何らかの理由で、コントローラーが必要なイベントを生成できないだけです (ワイヤレスまたは USB 経由で、OS に登録されている PS4 コントローラーを使用しているため、ここで何が欠けているのかわかりません)。

これらの通知を有効にする必要がある他の場所はありますか? 何らかの方法で GCController フレームワークを初期化する必要がありますか?

4

1 に答える 1

4

したがって、GCController フレームワークは MFi (Made For iPod、Made For iPhone、Made For iPad) コントローラー製品のみをサポートすることがわかります。

非 MFi コントローラのサポートを検討している場合は、IOKit を介して HID と接続する必要があります。または、代わりにかなり優れたDDHIDLibを使用してください

于 2015-02-09T12:54:22.500 に答える