Я пытаюсь использовать NSProgressIndicator (неопределенный) внутри меню состояния. Я использую NSView-объект в качестве представления для элемента меню, а затем просматривает индикатор прогресса, чтобы отобразить его. Но всякий раз, когда я пытаюсь вызвать startAnimation: для прогресса ничего не происходит. Когда я пытаюсь сделать то же самое в обычном NSWindow, он работает отлично, просто не внутри элемента меню.Использование NSProgressIndicator внутри NSMenuItem
Я новичок как в какао, так и в объективе-c, поэтому я мог бы забыть что-то «очевидное», но я искал довольно много для обходного пути, но безуспешно. Я нашел что-то о том, что элементы меню не могут быть обновлены во время показа, и вам нужно вместо этого использовать окно без границ. Но я не смог подтвердить это в любой документации.
Редактировать:
Хорошо, сейчас почти работает. При использовании setUsesThreadedAnimation: и из меню MenuDelegateWillOpen и создания нового потока. Эта нить запускает локальный метод:
-(void) doWork(NSProgressIndicator*) p{
[p startAnimation:self];
}
Это запустит progressindicator на случайной основе при открытии меню (?). Если я позвоню startAnimation:
напрямую, не пройдя doWork:
(все еще использую новый поток), он никогда не работает. Не делает setUsesThreadedAnimation:
сделать индикатор прогресса создать собственный поток для анимации?
Спасибо, много за этот совет, это действительно помогает! – Yojik
Сумасшедший, как долго я искал, чтобы сделать эту работу, спасибо большое! – Jasper
Спасибо, друг! Спасибо, друг! –