objective c - NSTableView doesn't display return value of objectValueForTableColumn method -
objective c - NSTableView doesn't display return value of objectValueForTableColumn method -
it doesn't matter return, table view display display text manually set (the 'title' of nstextfield) in .xib file. please help me figure out i'm doing wrong. thanks.
my nstableview has 1 column.
here code :
#import "devicesettingscontroller.h" #import <imagecapturecore/imagecapturecore.h> @interface devicesettingscontroller () @property (weak) iboutlet nstableview *tableviewscanners; @property (weak) iboutlet nsmatrix *checkboxes; @property nsmutablearray *availablescanners; @property icdevicebrowser *devicebrowser; @end @implementation devicesettingscontroller - (void)viewdidload { [super viewdidload]; _availablescanners = [[nsmutablearray alloc] init]; _devicebrowser = [[icdevicebrowser alloc] init]; _tableviewscanners.delegate = self; _tableviewscanners.datasource = self; _devicebrowser.browseddevicetypemask = icdevicetypemaskscanner | icdevicelocationtypemasklocal | icdevicelocationtypemaskshared | icdevicelocationtypemaskbluetooth | icdevicelocationtypemaskbonjour; _devicebrowser.delegate = self; [_devicebrowser start]; } - (id)initwithmainview:(nsview *)_theview andmaincontroller:(nsviewcontroller *)_theviewcontroller andnibname:(nsstring *)nibname andargs:(nsarray *)_args { self = [super initwithmainview:_theview andmaincontroller:_theviewcontroller andnibname:nibname andargs:_args]; homecoming self; } - (void)devicebrowser:(icdevicebrowser *)browser didadddevice:(icdevice *)device morecoming:(bool)morecoming { [_availablescanners addobject:device]; [_tableviewscanners reloaddata]; } - (void)devicebrowser:(icdevicebrowser *)browser didremovedevice:(icdevice *)device moregoing:(bool)moregoing { [_availablescanners removeobject:device]; [_tableviewscanners reloaddata]; } - (void)didremovedevice:(icdevice *)device { } - (nsinteger)numberofrowsintableview:(nstableview *)tableview { homecoming [_availablescanners count]; } - (id)tableview:(nstableview *)tableview objectvaluefortablecolumn:(nstablecolumn *)tablecolumn row:(nsinteger)row { nsstring *retval = [((icscannerdevice *)[_availablescanners objectatindex:row]) name]; homecoming retval; } @end
is tableview content mode cell based or view based? assume view based since mention xib, hence instead of objectvaluefortablecolumn(cell based) have utilize
- (nsview *)tableview:(nstableview *)tableview viewfortablecolumn:(nstablecolumn *)tablecolumn row:(nsinteger)row
also see apple docs, typical implementation follows
- (nsview *)tableview:(nstableview *)tableview viewfortablecolumn:(nstablecolumn *)tablecolumn row:(nsinteger)row { // retrieve @"myview" pool or, // if no version available in pool, load interface builder version nstablecellview *result = [tableview makeviewwithidentifier:@"myview" owner:self]; // set stringvalue of cell's text field namearray value @ row result.textfield.stringvalue = [self.namearray objectatindex:row]; // homecoming result homecoming result; }
objective-c osx cocoa nstableview nstablecolumn
Comments
Post a Comment