Я хотел бы иметь NSMenu
с несколькими NSMenuItem
s в нем. Эти элементы должны вести себя так же, как «нормальный» NSMenuItem
с, за одним исключением: я хотел бы иметь возможность нарисовать содержимое (т. Е. «Переднем плане») каждого элемента самостоятельно.Простой способ реализовать пользовательские образы NSMenuItem
То есть:
Я хотел бы операционную систему нарисовать синюю подсветку, когда я зависать с помощью мыши, нарисуйте метку или тире (для обозначения «выбрано»/"часть мульти -подбор "). Более того, мне бы хотелось «нормального», т. Е. Встроенного в меню мыши/клавиатуры поведения.
Я хотел бы обратить на «содержание» себя: В идеале, я бы себе представить, что я должен был бы реализовать/переопределить один единственный метод
drawMenuItem:withCGContext:inRectangle:withTextColor
, который в основном получает деталь, тоCGContext
рисовать в, тоNSRect
и цвет текста , который будет использоваться Mac OS, если он сам нарисовал элемент.
Я знаю (подозреваю, очень stronlgy), что мое желание, вероятно, слишком много, но я бы прекрасно с чем-то адекватным (например, я мог себе представить выборку в NSRect
из NSMenuItem
себя, получая цвет, используя что-то вроде [NSColor selectedMenuItemTextColor]
, а контекст использует что-то вроде [NSContext currentContext]
).
Конечно, я считал Apple's instruction on this. Тем не менее, это не позволяет меню рисовать синий фон подсветки и галочку. Более того, насколько я мог видеть, мне пришлось бы реализовать, например, mouseUp
сам.
Подводя итог: есть ли способ получить (почти) полностью функциональное меню, где я только настраиваю содержимое, где обычно заголовок пункта меню (возможно, даже без пользовательских представлений)?
Не можете ли вы установить изображение элемента меню? – Willeke
@Willeke Я подумал об этом, но был несколько неуверен, так как теперь я знаю, было ли это задуманное изображение. Более того, я не был уверен, что динамично менять цвет переднего плана динамически, основываясь на «изюминке» состояния «NSMenuItem». – phimuemue