RemoteControlReceivedWithEventが呼ばれない時
- (void)remoteControlReceivedWithEvent:(UIEvent *)event
これをオーバーライドするだけだと、リモートコントロールのイベントを受け取れないんですね。
以前にリモートコントロールの処理を書いた時には、特別なことを記憶がないのですが・・。
謎は残りつつも、動いたコードをメモしておきます。
イベントを受け取れるようにするには
リモートコントロールのイベントを受け取りたいオブジェクトに、以下を追加します。
私はカスタムUIViewに書いていますが、動きました。
(一般的にはUIViewController
に書くことが多いかと思います)
1. beginReceivingRemoteControlEvents
UIViewController
の場合は、viewDidLoad
などに書きます。
(私はUIView
なのでawakeFromNib
に書きました)
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[self becomeFirstResponder];
2. canBecomeFirstResponder
オーバーライドします。
- (BOOL)canBecomeFirstResponder { return YES; }
この2つで、remoteControlReceivedWithEvent
が呼ばれるようになりました。