Próbuję skonfigurować NSCollectionView
(robiłem to z powodzeniem w przeszłości, ale z jakiegoś powodu nie udało się tym razem).NSCollectionView niczego nie rysuje
Mam klasę modelu o nazwie "TestModel" i ma ona właściwość NSString
, która właśnie zwraca ciąg znaków (tylko do celów testowych w tej chwili). Następnie mam deklarację właściwości NSMutableArray
w mojej głównej klasie delegatów aplikacji i do tej tablicy dodajemy instancje obiektu TestModel
.
Mam wtedy kontroler macierzy, który ma układ zawartości związany z delegatem aplikacji NSMutableArray
. Mogę potwierdzić, że wszystko do tej pory działa dobrze; NSLogging:
[[[arrayController arrangedObjects] objectAtIndex:0] teststring]
działało.
Mam wtedy wszystkie odpowiednie powiązania dla skonfigurowanego widoku kolekcji (itemPrototype i content) oraz dla elementu View kolekcji (view). Następnie mam pole tekstowe w widoku elementu kolekcji, które jest powiązane z widokiem kolekcji Item.representedObject.teststring
. Jednak nic nie wyświetla się w widoku kolekcji po uruchomieniu aplikacji, tylko pusty biały ekran. czego mi brakuje?
UPDATE: Oto kod używam (wniosek wil Shipley):
// App delegate class
@interface AppController : NSObject {
NSMutableArray *objectArray;
}
@property (readwrite, retain) NSMutableArray *objectArray;
@end
@implementation AppController
@synthesize objectArray;
- (id)init
{
if (self = [super init]) {
objectArray = [[NSMutableArray alloc] init];
}
return self;
}
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
TestModel *test = [[[TestModel alloc] initWithString:@"somerandomstring"] autorelease];
if (test) [objectArray addObject:test];
}
@end
// The model class (TestModel)
@interface TestModel : NSObject {
NSString *teststring;
}
@property (readwrite, retain) NSString *teststring;
- (id)initWithString:(NSString*)customString;
@end
@implementation TestModel
@synthesize teststring;
- (id)initWithString:(NSString*)customString
{
[self setTeststring:customString];
}
- (void)dealloc
{
[teststring release];
}
@end
A potem jak powiedziałem zawartość tablicy kontroler macierzy jest związany z tym „objectArray”, a Zawartość NSCollectionView jest powiązana z Array Controller.arrangedObjects. Mogę sprawdzić, czy kontroler macierzy ma w nim obiekty, NSLogging [arrayController arranObjects], i zwraca poprawny obiekt. To po prostu nic nie wyświetla w NSCollectionView.
UPDATE 2: Jeżeli Loguję [treść CollectionView] mam nic:
2009-10-21 08:02:42.385 CollViewTest[743:a0f] (
)
Problemem jest prawdopodobnie tam.
UPDATE 3: Zgodnie z życzeniem tutaj jest projekt Xcode:
http://www.mediafire.com/?mjgdzgjjfzw
Jest to aplikacja paska menu, więc nie ma okna. Kiedy tworzysz i uruchamiasz aplikację, zobaczysz pasek menu z napisem "test", otwiera widok zawierający NSCollectionView.
Dzięki
Jak zmodyfikować zmienny tablicę w delegata? Czy możesz napisać kod? –
Edytowałem wpis i dodałem kod, którego używam. – indragie
Kod, który wysłałeś, nie mówi nam nic o tym, czy twoje powiązania są poprawnie połączone. Musisz opublikować projekt gdzieś. – NSResponder