Próbuję zaimplementować nowy widok OutlineView oparty na widoku jako listę źródeł w mojej aplikacji Mac. Nie mogę jednak wyświetlić wartości do wyświetlenia, dlatego stworzyłem małą aplikację testową z szablonu aplikacji Core Data i nie mogę jej również uruchomić.Powiązanie opartego na widoku NSOutlineView do danych podstawowych
Zdefiniowałem dwie proste klasy w moim modelu danych; nazwijmy je "rodzicem" i "dzieckiem". Rodzic ma pojedynczy atrybut "imię i nazwisko" oraz pojedynczy związek "dzieci". nazwa to opcjonalny ciąg znaków, a dla dzieci jest opcją do wielu dla użytkownika Dziecko. Dziecko ma taki sam atrybut "nazwa" i relację "rodzica" jeden do jednego, który jest odwrotnością dzieci. Wygenerowałem niestandardowe klasy dla obu tych i napisałem stub w Dziecko dla dzieci, który zwraca nil
.
Przeciągnąłem listę źródeł z biblioteki obiektów do mojego XIB i upuszczono w drzewie kontrolera. Domyślna ścieżka klucza kontrolera drzewa jest ustawiona na "dzieci", jest w trybie nazwy jednostki, z "nadrzędnym" jako nazwą jednostki, przygotowuje sprawdzoną treść i kontekstem zarządzanego obiektu do kontekstu delegata aplikacji. Kontroler drzewa jest źródłem danych widoku konspektu, a widok tekstowy komórki danych ograniczam do widoku komórki tabeli za pomocą ścieżki klucza "objectValue.name".
w -applicationDidFinishLaunching:
tworzę dwa Parent przypadki, jeden z dziecka i przypisać nazwa właściwości każdego obiektu.
rzeczywisty problem
Teraz, dzięki tej konfiguracji z drogi, mam wiersze znalazły się na liście źródeł, ale pola tekstowe są puste, mimo że są one granica. Nie sądzę, że powinienem robić cokolwiek innego, ponieważ używam wiązań i jestem w pełni pewien, że powiązanie z właściwością objectValue
jest słuszne. Co idzie źle?
Mogę podać więcej szczegółów w razie potrzeby, ale jestem prawie pewien, że obejmuje wszystko, co zrobiłem.
Dostałeś to zadziałało? Miałem ten sam problem, więc próbowałem zduplikować twój projekt. Ale używam aplikacji opartej na dokumencie. Moje metody delegatów nigdy nie są wywoływane i nie otrzymuję żadnych wartości tekstowych w komórkach. Jednak zawierają poprawne dane. Czy masz działający kod wszędzie, gdzie mogę się przyjrzeć? Bardzo to doceniam! Mogę przesłać mój projekt testowy do github. – Mikael
Czy oznaczałeś kontroler widoku jako delegata? Jeśli metody delegatów nie zostaną w ogóle wywołane, okablowanie jest prawdopodobnie niepoprawne. Jeśli to nie rozwiąże problemu, powinieneś zamieścić własne pytanie. – Dov
Nie mogę uwierzyć, że to przegapiłem. Wielkie dzięki! – Mikael