我想在我的应用中处理删除控制事件,但也希望在我完成后将事件传递给其他应用。
我在Apple的远程控制事件文档部分找不到明确的说明: http://developer.apple.com/library/ios/#documentation/EventHandling/Conceptual/EventHandlingiPhoneOS/Remote-ControlEvents/Remote-ControlEvents.html#//apple_ref/doc/uid/TP40009541-CH7-SW3
这里说:
iOS将命令转换为UIEvent对象并将事件传递给 一个应用程序应用程序将它们发送给第一个响应者,如果是第一个响应者 响应者没有处理它们,它们沿着响应链向上移动。对于 有关响应者链的更多信息,请参阅“响应者链” 遵循特定的交付路径。“
所以我以为我会放置
[[self nextResponder] remoteControlReceivedWithEvent: receivedEvent];
在我的事件处理程序方法结束时,期望在我的处理程序完成之后,当前播放的音乐应用程序(例如内置音乐播放器)将能够接收该事件。 但令我惊讶的是,它从来没有。
我在这里缺少什么?
答案 0 :(得分:2)
确保调用以下方法开始接收事件。
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[self becomeFirstResponder];
然后在您的应用程序委托中,您需要监听事件。
-(void)remoteControlReceivedWithEvent:(UIEvent *)event{
if (event.type == UIEventTypeRemoteControl){
switch (event.subtype) {
case UIEventSubtypeRemoteControlTogglePlayPause:
break;
default:
break;
}
}
}