Как нарисовать мои собственные ключевые эквиваленты в NSMenuItem? - PullRequest
3 голосов
/ 23 августа 2009

Мне нужно что-то, чтобы этот владелец нарисовал эквиваленты ключа завершения табуляции в моем собственном коде. Как TextMate делает в этот пример .

Я слышал, что рисунок меню основан на углероде, но я не надеюсь, что это такой огромный взлом.

Но что бы я ни пытался и куда бы ни смотрел, я не мог найти подсказки.

EDIT: Я готов принять даже ответ на основе углерода, просто все, что работает на версии> = 10.4

Ответы [ 2 ]

3 голосов
/ 02 сентября 2009

Менубар, даже в 10.6, все еще основан на углероде. На уровне Carbon существует API (см. Ниже), который позволяет вам установить любой эквивалент ключа, который вы хотите, в элементе меню независимо от того, отображает ли приложение этот ключ, эквивалентный элементу меню. Другими словами, Carbon позволяет настроить отображение элемента меню независимо от поведения. Используя этот API, вы можете установить любую комбинацию клавиш, которую хотите отображать в пункте меню.

К сожалению, похоже, документации для этого API больше нет. Но вы все равно можете прочитать файл заголовка. Я считаю, что API, который вы хотите, находится в /System/Library/Frameworks/Carbon.framework/Frameworks/HIToolbox.framework/Headers/Menus.h. Я знаю, что HIToolbox не является 64-битным, но я подозреваю, что меню API все еще должно быть, учитывая, что меню Какао по-прежнему основаны на меню углерода.

2 голосов
/ 24 августа 2009

Один из способов сделать это - нарисовать предмет самостоятельно. Я не уверен, есть ли способ просто переопределить рисунок на эквиваленте ключа. Взгляните на пример кода MenuItemView .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...