Начиная с OS X 10.10 большая часть NSStatusItem устарела в пользу свойства button
, которое состоит из NSStatusBarButton. Он должен работать как обычная кнопка, но, к сожалению, методы cell
и setCell
в NSStatusButton также устарели. В результате я изо всех сил пытаюсь найти способ выделить кнопку после ее щелчка (обычно кнопка подсвечивается мышью вниз и не высвечивается мышью вверх. Я хочу, чтобы она была подсвечена после мышки).NSStatusBarButton keep highlight
Вызов [NSStatusButton setHighlighted:]
в своем действии не работает, потому что кажется, что он не высветится сразу после того, как мышь встала. С другой стороны, использование задержки для вызова на следующем цикле, то есть [self performSelector: withDelay:]
заставляет подсветку мигать довольно неприглядно. Он работает, но выглядит не очень хорошо.
Установка типа кнопки на NSToggleButton
полностью удаляет выделение и вместо этого выделяет изображение шаблона, которое было нечетным.
Это были единственные методы, о которых я мог думать. В любом случае, чтобы переопределить поведение мыши с помощью NSButtonCell?
Где вы узнали, что 'NSStatusItem' устарел? – PnotNP
@NulledPointer https://developer.apple.com/library/prerelease/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSStatusItem_Class/index.html#//apple_ref/doc/uid/TP40004118 – Luke
NSStatusItem не устарел, некоторые из его методов были отвергнуты в 10.10. – ctpenrose