La risposta di Can era buona, ma penso che sia obsoleta.
Ora è necessario sottoclasse l'applicazione UIA.
codice per main.m
#import <UIKit/UIKit.h>
#import "AppDelegate.h"
#import "MyUIApplication.h"
int main(int argc, char * argv[]) {
@autoreleasepool {
return UIApplicationMain(
argc,
argv,
NSStringFromClass([MyUIApplication class]),
NSStringFromClass([AppDelegate class]));
}
}
Codice per MyUIApplication.m
:
@implementation MyUIApplication
- (void)sendEvent:(UIEvent *)event {
if (event.type == UIEventTypeRemoteControl) {
// Check event.subtype to see if it's a single click, double click, etc.
} else {
// Not my problem.
[super sendEvent:event];
}
}
@end
Codice per AppDelegate.m
:
all'interno di - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
chiamata [application beginReceivingRemoteControlEvents];
Grazie Can. Ho trovato un'altra soluzione utilizzando il metodo: "remoteControlReceivedWithEvent:". La soluzione è discussa qui: http://www.iphonedevsdk.com/forum/iphone-sdk-development/44433-there-way-respond-clicks-headphone-buttons.html – MCO
@Can ho provato la tua soluzione e il sendEvent UIEventTypeRemoteControl tipo di evento non viene chiamato quando premo i pulsanti sulla mia cuffia. C'è qualche altro setup che hai fatto per farlo funzionare? La sottoclasse sta funzionando mentre catturo altri eventi. –