Я получаю предупреждение, что PostEvent
устарел, и я предполагаю, что предполагается использовать PostEventToQueue
, но он принимает два дополнительных параметра, и я не могу найти документацию о том, какая комбинация параметров (одна спецификация очереди, другая - приоритет события) будет эквивалентна PostEvent
.Какая правильная замена для PostEvent
ответ
PostEventToQueue
предназначено для использования в условиях углеродного события, а не для низкоуровневого события ОС, такого как PostEvent
. Если вы хотите опубликовать событие с клавиатурой или мышью, вы должны использовать CGEventPost
.
Редактировать добавить: Для того, чтобы оставить курсор вниз на текущем месте, я думаю (не тестировалось), что вы можете сделать это:
CGEventRef theEvent = CGEventCreate(NULL);
CGEventSetType(theEvent, kCGEventLeftMouseDown);
CGEventPost(theEvent);
CFRelease(theEvent);
Итак, каков эквивалентный вызов CGEventPost для устаревшего вызова в коде JUCE, с которым я экспериментирую. Вызов - PostEvent (:: mouseDown, 0); – David
Спасибо, я попробую ваше предложение. Жаль, что нужно заменить один звонок четырьмя звонками! – David
Каков ваш источник для утверждения, что 'PostEventToQueue' устарел? В заголовке и в документе диспетчера событий Carbon не упоминается устаревание. –
Я думаю, было бы разумно предположить, что использование очереди событий возвращается GetMainEventQueue()
(или GetCurrentEventQueue
, если вы в главной теме), и kEventPriorityStandard
для приоритета, получите результаты, эквивалентные PostEvent
.
Помните, что это влияет только на ваше собственное приложение. Даже старый диспетчер событий, вероятно, больше не имеет доступа к «очереди событий операционной системы» - я не удивлюсь, если это всего лишь обертка вокруг версии Carbon Event Manager. Вам нужно переключиться на материал CGEvent, если вы хотите публиковать события, которые могут поразить другие приложения.
- 1. Какая правильная замена для posix_memalign в Windows?
- 2. Правильная замена фрагментов
- 3. Какая правильная & строка?
- 4. Какая таблица правильная?
- 5. Какая правильная математика выцветает?
- 6. Какая правильная архитектура Node.js?
- 7. Какая правильная область применения?
- 8. Какая здесь правильная архитектура?
- 9. Какая правильная проверка URL?
- 10. Какая правильная реализация JVM?
- 11. Какая печать более «правильная»?
- 12. Какая правильная/правильная коллекция для использования с java.nio.file.Path?
- 13. Is -XX: + UseG1GC правильная замена для -Xincgc?
- 14. Какая правильная версия Pixi для Phaser?
- 15. Какая правильная терминология для javascript-обещаний
- 16. Какая правильная переменная lib для make-файла?
- 17. Какая правильная кодировка для файлов PS1
- 18. Какая правильная версия для Fasterflect использует SNAP?
- 19. Какая правильная номенклатура для часовых поясов?
- 20. Какая правильная архитектура для MVC4 WebAPI
- 21. Какая правильная кодировка для типа SNMP Unsigned32?
- 22. Какая правильная программа для данного оператора?
- 23. Кассандра: какая правильная конфигурация для EC2-многополосного?
- 24. Какая правильная api для использования в ферменте
- 25. Какая правильная команда для поиска точной строки,
- 26. Какая правильная метка надписи для фрагмента кода?
- 27. Какая правильная грамматика для этого языка?
- 28. Async - Какая из них правильная
- 29. Какая правильная форма интерпретатора python?
- 30. DatabaseCleaner + RSpec: какая правильная конфигурация?
Пожалуйста, используйте только тег xcode для проблем, связанных с самим XCode, а не проблемы программирования, связанные с языком/ОС, для которых вы разрабатываете. Я удалил его и добавил для вас тег какао. – lnafziger
@Inafziger, я не вижу причин, по которым также имеет значение тег Cocoa. – JWWalker
Это часть API Cocoa, поэтому она не является необоснованной, возможно, даже более разумной, чем «osx». – David