Jestem nowy w kakao i denerwuję się, spędziłem prawie pół dnia próbując dowiedzieć się jak dodać NSView do komórki NSTableView, ale nie znalazłem miły przewodnik, który pomoże mi robić to, co chciałbym osiągnąć, może ktoś może rzucić okiem na to, co próbowałem i powiedz mi, dlaczego to nie działa i jak mogę zmusić go do pracy ...Kakao NSView w komórce NSTableView
-(NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row{
NSTableCellView *view = [tableView makeViewWithIdentifier:@"MyView" owner:self];
NSTextField *textfield = [[NSTextField alloc]initWithFrame:NSMakeRect(0, 0, 100, 30)];
[textfield setStringValue:predictate_search[row]];
[textfield setBackgroundColor:[NSColor redColor]];
[view addSubview:textfield];
[view setNeedsDisplay:YES];
return view;
}
Co chciałbym osiągnąć, to posiadanie dwóch NSTextFieldów ponad sobą i komórki tabeli mają niestandardowe tło. Powyższe jest mi po prostu staramy się uzyskać jeden NSTextField do pracy, ale bez powodzenia ...
NSTableView jest tworzona programowo:
NSScrollView *scrollView = [[NSScrollView alloc]initWithFrame:bg];
[scrollView setHasVerticalScroller:YES];
[self addSubview:scrollView];
search_results = [[NSTableView alloc]initWithFrame:bg];
NSTableColumn *column = [[NSTableColumn alloc] initWithIdentifier:@"id"];
[[column headerCell] setStringValue:@"Cities"];
[column setWidth:1000.0];
[search_results addTableColumn:column];
[search_results setDelegate:(id)self];
[search_results setDataSource:(id)self];
[search_results reloadData];
[scrollView setDocumentView:search_results];
jestem nieco zdezorientowany, co umieścić na makeViewWithIdentifier:
, Oglądałem wideo na NSTableViews, ale nadal nie jestem pewien.
Jeśli potrzebujesz więcej informacji proszę pytać
Dzięki
EDIT Po pierwszej odpowiedzi:
-(NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row{
NSTableCellView *view = [tableView makeViewWithIdentifier:[tableColumn identifier] owner:self];
if(view == nil){
NSTableCellView *view = [[NSTableCellView alloc]initWithFrame:[tableView frame]];
view.identifier = [tableColumn identifier];
}
NSTextField *textfield = [[NSTextField alloc]initWithFrame:NSMakeRect(0, 0, 100, 30)];
[textfield setStringValue:predictate_search[row]];
[textfield setBackgroundColor:[NSColor redColor]];
[view addSubview:textfield];
[view setNeedsDisplay:YES];
return view;
}
Jednak to nadal nie działa?
Dodałem, że w, ale nadal nie działa ... –
tylko sprawdzanie ... zaimplementowałeś inne metody? :: https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Protocols/NSTableDataSource_Protocol/Reference/Reference.html –
Zaimplementowałem '- (NSInteger) numberOfRowInViewable: (NSTableView *) aTableView' o ile wiem, że to jedyny obowiązkowy ... –