Вопрос

У меня есть СТАРАЯ программа Mac C/C++, которую я поддерживаю.Он по-прежнему основан на файлах rsrc и системных вызовах OS 9.(Да, да, я знаю.Я ПЫТАЮСЬ перетащить свою компанию в 21 век, но другой инженер все еще использует OSX10.3.9!пожалуйста, пожалей меня)

Я пытаюсь получить функциональность ярлыка модификатора.Например, Cmd-S работает.Однако Opt-Cmd-S мигает меню «Файл», но ничего не делает, ЕСЛИ меню файла уже открыто.

Я просмотрел свой код и обнаружил, что беру сообщение о событии и передаю его в MenuKey, чтобы сообщить мне, какой пункт меню представляет комбинация клавиш.Однако MenuKey всегда возвращает 0, если нажато более одного модификатора.

Из документации Apple я вижу, что это устарело, но мне бы не хотелось переписывать всю программу, чтобы перейти на nibs и так далее.

Итак, есть ли у кого-нибудь быстрая и грязная работа?

Спасибо.

Это было полезно?

Решение

Ну почти все пользовательского интерфейса Carbon устарел (хотя MenuKey устарел больше, чем некоторые другие элементы).Это не значит, что он все еще не поддерживается, но вместо этого вам следует делать любые новые разработки с использованием Cocoa (даже версия 10.3.9 представляет собой значительное улучшение по сравнению с тем, что вы делаете).

Если вы не привыкли работать с Carbon, обязательно прочтите заголовочные файлы;там много документации и полезных советов, которых нет больше нигде.Вам следует использовать MenuEvent вместо MenuKey;MenuKey не поддерживает модификаторы, кроме клавиши Command.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top