W tej chwili implementuję aplet NSTouchBar do mojej aplikacji na MacOS.Aktualizuj NSTouchBar w locie, aby programowo dodawać/usuwać elementy.
W tej chwili, jedyny pasek dotykowy, jaki mam, ma główny kontroler widoku jako delegata i mogę dodawać do niego elementy. Połów jest, potrzebuję niektóre z tych elementów, aby pojawiły się tylko wtedy, gdy pewien warunek jest spełniony (wiersz jest zaznaczony w tabeli).
Weź pod uwagę, że mam wartość boolowską, która wskazuje, czy przycisk powinien być widoczny. Jak mogę zaktualizować NSTouchBar w locie, aby pokazać/ukryć ten przycisk na wypadek, gdyby zmieniła się wartość boolowska? (Nie muszę tego przestrzegać, mogę po prostu wywołać aktualizację w innej, już zaimplementowanej metodzie).
To, co zrobiłem na razie, jest następujące: w touchBar(:makeItemForIdentifier)
, mam przełącznik dla wszystkich identyfikatorów, i pod odpowiednim numerem case
, albo zwracam NSCustomTouchBarItem
za pomocą przycisku, albo nil
, jeśli moja wartość logiczna to false
.
Próbowałem ponownie wywoływać makeTouchBar
po wybraniu wiersza tabeli, ale nie aktualizuje widoczności przycisków, tak jakby touchBar(:makeItemForIdentifier)
nie był ponownie wywoływany.
Dzięki!
Czy próbowałeś ustawić właściwość isVisible elementu dotykowego? – Arjuna
Ta właściwość jest tylko do odczytu. – MrMage