El clic sintético no cambia la barra de menú de la aplicación (Mac OS X)

Estoy desarrollando algún tipo de aplicación de mouse aéreo para la plataforma iPhone. Esta aplicación se conecta a un servicio de computadora que genera eventos de mouse en Mac OS X. Estoy generando estos eventos con CGEventCreateMouseEvent () y CGEventPost (). Pero me he encontrado con un problema. Digamos que está utilizando Safari y luego hace clic en el espacio libre del escritorio. Si hace esto con el mouse normal, ocultará la barra de menú superior de Safari y mostrará la barra de menú del Finder. Pero en estos eventos sintéticos no actúa así. ¿Tengo que publicar algún otro evento o establecer algunas propiedades adicionales?

Aquí está mi código para mouse up, mouse down:

- (void)mouseUp:(int)button {
    int type = (button == LEFT_BUTTON,) ? kCGEventLeftMouseUp : kCGEventRightMouseUp;
    int mouseButton = (button == LEFT_BUTTON) ? kCGMouseButtonLeft : kCGMouseButtonRight;
    leftMouseDown = (button == LEFT_BUTTON) ? NO : leftMouseDown;
    rightMouseDown = (button == RIGHT_BUTTON) ? NO : rightMouseDown;
    CGEventSourceRef source = CGEventSourceCreate(kCGEventSourceStateHIDSystemState);
    CGEventRef event = CGEventCreateMouseEvent (source, type, CGSCurrentInputPointerPosition(), mouseButton);
    CGEventSetType(event, type);
    CGEventPost(kCGHIDEventTap, event);
    CFRelease(event);
}
- (void)mouseDown:(int)button {
    int type = (button == LEFT_BUTTON) ? kCGEventLeftMouseDown : kCGEventRightMouseDown;
    int mouseButton = (button == LEFT_BUTTON) ? kCGMouseButtonLeft : kCGMouseButtonRight;
    leftMouseDown = (button == LEFT_BUTTON) ? YES : leftMouseDown;
    rightMouseDown = (button == RIGHT_BUTTON) ? YES : rightMouseDown;
    CGEventSourceRef source = CGEventSourceCreate(kCGEventSourceStateHIDSystemState);
    CGEventRef event = CGEventCreateMouseEvent (source, type, CGSCurrentInputPointerPosition(), mouseButton);
    CGEventSetType(event, type);
    CGEventPost(kCGHIDEventTap, event);
    CFRelease(event);
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta