Итак, у меня есть NSSearchField, подключенный непосредственно к NSArrayController через привязки, прикрепленный к filterPredicate, так что без какого-либо кода пользователь может просто ввести NSSearchField и отфильтровать список объектов в NSArrayController, представленный ему в интерфейсе. (если быть точным, NSCollectionView).
NSSearchField подключается для обеспечения поиска в реальном времени, поэтому NSCollectionView фильтруется мгновенно, когда пользователь вводит, а не после короткого периода ожидания, пока пользователь перестанет печатать.
Однако проблема в том, что это делает интерфейс очень медленным. Ввод значительно задерживается, на 0,5-1 секунду, и кажется, что NSCollectionView пытается анимировать каждую перестановку элементов для каждой части строки поиска, которую вводит пользователь.
Я бы хотел, чтобы поиск был в реальном времени, но ввод текста в поле поиска был плавным, а результаты фильтровались как можно быстрее. Есть ли способ сделать это с помощью привязок или мне нужно будет добавить какой-то собственный код, который запускает filterPredicate в отдельном потоке?
(Обратите внимание, что у меня есть собственный алгоритм сортировки, настроенный в NSArrayController, и его удаление, похоже, немного помогает с задержкой, но не полностью.)