Возврат CGEvent моего собственного создания в NSEventTap
Документация для CGEventTapCallBack
здесь говорится:
CGEventRef событие Входящее событие. Это событие принадлежит вызывающему, и вам не нужно его освобождать.
Что произойдет, если я захочу съесть мероприятие и вернуться NULL
? Нужно ли мнеCFRelease
это я сам?
Точно так же, если я хочу заменить его событием, которое я создал сам, должен ли я CFRelease
входящее событие и CFRetain
вновь созданное событие?
Или я вынужден изменить содержимое полученного CGEvent
на месте? И действительно ли это так, есть ли какой-нибудь API-вызов, который я могу использовать для горячей замены?
1 ответ
Скопировано из документации для CGEventTapCallBack
(ссылка в вопросе):
Обсуждение
Если касание события является активным фильтром, ваша функция обратного вызова должна вернуть одно из следующих значений:
Переданное (возможно измененное) событие. Это событие передается обратно в систему событий.
Недавно построенное мероприятие. После того, как новое событие было передано обратно в систему событий, новое событие будет выпущено вместе с исходным событием.
NULL, если переданное событие должно быть удалено.
Новое событие будет выпущено вместе с исходным событием. Не выпускайте исходное событие и не выпускайте новое событие.