Я подхожу к этому неправильно. У меня был AVPlayer
, которым я управлял, с добавлением слоя вручную в иерархию. Я переключился на использование AVPlayerView
, которое обеспечивало функциональность поиска / очистки из коробки. Единственный виновник состоял в том, что он заменял всю сенсорную панель (где у меня были и другие кнопки).
Я переопределил метод makeTouchBar
контроллера представления (каждый ресурс указывал на использование метода контроллера окна вместо контроллера представления, который, в моем случае, не работал, и метод даже не вызывался на контроллере окна даже хотя сенсорная панель была привязана к контроллеру окна, но она была вызвана и прекрасно работала на контроллере представления) и добавила прокси-сервер других элементов:
-(NSTouchBar *)makeTouchBar{
NSTouchBar *bar = self.view.window.windowController.touchBar;
bar.defaultItemIdentifiers = [bar.defaultItemIdentifiers.mutableCopy arrayByAddingObject:@"NSTouchBarItemIdentifierOtherItemsProxy"];
return bar;
}
И вуаля! Теперь он отлично работает, с помощью моих пользовательских кнопок сенсорной панели и панель поиска / очистки видеоплеера.