Как создать список источников в стиле iTunes, который фильтрует основной вид таблицы? - PullRequest
0 голосов
/ 02 апреля 2011

Я прочитал некоторые темы о том, как имитировать стиль списка источников iTunes.Но я не могу понять, что нужно сделать, чтобы позволить им на самом деле показать другие вещи в главном представлении таблицы.

Моя настройка такова: у меня есть основные данные в фоновом режиме, содержащие все дорожки из iTunesстрока "state", которая имеет 3 состояния.Я хочу показывать только части заголовков при выборе элемента в исходном списке.Элементы списка источников соответствуют состояниям дорожек.Другими словами: 3 элемента списка источников, представляющих 3 разные группы в одном наборе данных.Группы различаются по этой переменной состояния.

Я попытался создать массив из NSStrings и NSPredicates и связать выбранный элемент с предикатом фильтрации основных представлений таблицы.Но это не сработало.

Большое спасибо за ваш ответ.

РЕДАКТИРОВАТЬ: Настройка фильтра предикатов из массива теперь работает.Но это плохо работает с полями NSSearch, которые фильтруют таблицу.Есть ли другой способ или я могу легко объединить два предиката?

1 Ответ

1 голос
/ 11 апреля 2011

Вы можете «объединить» два предиката, используя «ИЛИ» или «И», объединяя их вместе.Другими словами, предположим, у вас есть эти два предиката:

NSPredicate *one = [NSPredicate predicateWithFormat:@"foo = 42"];
NSPredicate *two = [NSPredicate predicateWithFormat:@"bar = 'abc'"];

Вы можете сделать:

NSArray *subpredicates = [NSArray arraWithObjects:one, two, nil];
NSPredicate *both = [NSCompoundPredicate andPredicateWithSubpredicates:subpredicates];
//this is equivalent to: foo = 42 AND bar = 'abc'

или

NSPredicate *both = [NSCompoundPredicate orPredicateWithSubpredicates:subpredicates];
//this is equivalent to: foo = 42 OR bar = 'abc'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...