Я использую NSCollectionView
, где каждый NSCollectionViewItem
использует QLPreviewView
для получения рендеринга содержимого файла.
(Это попытка в файловом браузере для изображений и других просматриваемых файлов.)
Первоначально это работает нормально.
Однако, как только элементы коллекции используются повторно, я получаю ошибку подтверждения (как в 10.13, так и в 10.14):
[QL] Assertion failure (unreachable code) - [… MyPreviewView activated … doc:[QLPreviewDocument …]] is already activated
По-видимому, прежде чем я смогу повторно использовать NSCollectionViewItem
, ранее использовавшемуся QLPreviewItem необходимо каким-то образом установить в неактивное состояние.Как мне это сделать?
Я пытался отправить сообщение close
в экземпляр QLPreviewView
, но это не имеет значения.
Я также не получаювызов dealloc для моего подкласса QLPreviewView
, который предполагает, что на объект все еще ссылается что-то еще, возможно, QLPreviewDocument
, который затем запутывается в изменении состояния.
Я сделал демонстрационный проект доступнымна github: https://github.com/tempelmann/NSCollectionViewWithQLPreview
Для проверки: запустите его, затем прокрутите вниз.При достижении пунктов с 50 по 60 утверждение сработает.