Я использую данные Core в какао. Так как я не могу размещать фотографии, я буду стараться изо всех сил, чтобы объяснить проблему Моя объектная модель: Книга: highlightInBooks >> ВыделитьДва связанных NSTables NSArrayControllers не обновляются одновременно, если я обновляю один из них
объекты управляются BookArrayController и HighlightArrayController. Источник данных BookNSTableView является источником данных BookArrayController и HighlightNSTableView - это HighlightArrayController.
Я создал NSMenu для выделения таблицы, которые используют атрибут Highlight: markHighlightToTrash Действие прилагается к NSMenue пункту:
- (IBAction)trashHighlight:(id)sender {
Highlight *highlight = [_highlightArrayController arrangedObjects][[_highlightTableView clickedRow]];
[highlight setHighlightToTrash];
]
В кульминационной подкласса:
-(void) setHighlightToTrash{
self.markHighlightToTrash = @1;
}
Так что выше код is is, когда пользователь выгружает всю выделенную книгу из выпадающего списка таблицы в книге Book Book.
Я установил два NSButton на боковой панели, а именно AllBooks and Trash.
- (IBAction)allBookButton:(id)sender {
NSPredicate *predicateTwo = [NSPredicate predicateWithFormat:@"SUBQUERY(highlightsInBook, $highlight, $highlight.markHighlightToTrash = NO) [email protected] > 0"];
[_bookArrayController setFilterPredicate:predicateTwo];
[_highlightArrayController setFilterPredicate:[NSPredicate predicateWithFormat:@"markHighlightToTrash = NO "]];
}
- (IBAction)trashButton:(id)sender {
[_highlightArrayController setFilterPredicate:[NSPredicate predicateWithFormat:@"markHighlightToTrash = YES"]];
NSPredicate *predicateTwo = [NSPredicate predicateWithFormat:@"SUBQUERY(highlightsInBook, $highlight, $highlight.markHighlightToTrash = YES) [email protected] > 0"];
[_bookArrayController setFilterPredicate:predicateTwo];
}
Поэтому, если щелкнуть AllBooks, в таблицах будут отображаться только те книги, которые не помечены в корзину. И когда нажата кнопка «Корзина», в таблицах будут показаны книги, чей ярлык отмечен как мусор.
Проблема Несмотря на то, что над кодом работает, когда я отмечаю все выделение книги X в выделенной таблице, книга X по-прежнему остается видимой в BookTable. Хотя, когда я нажимаю кнопку «Корзина» и «Агин», нажимаем кнопку «Все книги», книга «Х», скрывают (как и предполагалось).
Итак, почему таблица книг обновляется только после того, как я перехожу через эти две кнопки.