2013-01-12 11 views
5

Chciałbym wykonać następujące czynności:
po kliknięciu paska stanu (NSStatusItem) Chcę go podświetlić (bez menu) w nieskończoność, a gdy aplikacja straci ostrość, chcę przestać go podświetlać.

Czy jest jakiś sposób na zrobienie tego? Nie mogę tego znaleźć, tbh.Czy istnieje sposób, aby podświetlić programowo element paska stanu?

+2

Gdybym zobaczył, że aplikacja to robi, myślę, że został zawieszony, lub przynajmniej nie używa standardowej pętli zdarzeń, pomiędzy podświetleniem i niehandelem. Jeśli chcesz wskazać, że twoje okno jest widoczne, powinieneś zmienić ikonę elementu. –

Odpowiedz

2

Prawdopodobnie można to zrobić w niestandardowym widoku, który jest sends the status item a drawStatusBarBackgroundInRect:withHighlight: message.

Wątpię, czy jest jakikolwiek sposób na zrobienie tego bez niestandardowego widoku, ponieważ, jak wspomniałem w swoim komentarzu do tego pytania, utrzymywanie pozycji podświetlonej, gdy użytkownik nie ma myszy, wygląda źle.

+1

Rzecz w tym, że mam NSWindow (bez popover), który pojawi się zaraz pod paskiem stanu (po kliknięciu). Tak więc chcę naśladować zachowanie NSMenu: klikam na pasku stanu, okno jest pokazywane, a element jest podświetlony, gdy aplikacja traci ostrość, okno znika i element przechodzi w stan normalny. –

+0

@PedroVieira: Brzmi rozsądnie. Gdybym to robił, robiłbym niestandardowy widok, tak jak opisałem w mojej odpowiedzi. –

+0

Pedro, mam teraz dokładnie ten sam problem. Czy mógłbyś podzielić się z wami tym, jak wdrożyłeś rozwiązanie Petera? Twoje zdrowie. –

2

Stare pytanie, ale myślę, że warto dodać tę alternatywną odpowiedź.

ten nie będzie automatycznie usuwa zaznaczenie gdy aplikacja traci ostrość, ale ta pozwala na podkreślenie bez używania widoku niestandardowego (jako other answer wymaga):

NSStatusItem *statusItem = [self getStatusItem]; 
[statusItem.button setHighlighted:YES]; 

Można usuwa zaznaczenie go ręcznie za pomocą ta sama metoda:

[statusItem.button setHighlighted:NO]; 

Uwaga Mam tę odpowiedź z podobnego pytania here.

Powiązane problemy