Hi, Thanks for the reply. I used matrix to display data inside a sector years ago, when I had just started learning cocoa. I know its a crude and inefficient way to make a hex viewer, but currently its not required to be sophisticated at all and I didn't have the time to make any big changes.
I'm pasting here all of the code related to views, if it can give any clues. My sub-class of NSTextFieldCell: (currently does nothing but sets highlight color) @implementation HexCell -(NSColor *)highlightColorWithFrame:(NSRect)rect inView:(NSView *)controlView { return [NSColor yellowColor]; } @end My NSMatrix sub-class: (I'm not calling drawRect:) @implementation MatrixHex - (id)initWithFrame:(NSRect)frameRect rows:(int)rows columns:(int)columns { HexCell *aCell = [self prototype]; // initiates matrix: [self initWithFrame:frameRect mode:NSListModeMatrix prototype:aCell numberOfRows:rows numberOfColumns:columns]; [self setScrollable:YES]; return self; } - (id)prototype { HexCell *aCell = [[ HexCell alloc] init]; [aCell setEnabled:YES]; [aCell setStringValue:@"00"]; [aCell setFont:[NSFont systemFontOfSize:10.0]]; return aCell; } @end In my AppController, I have: id matOffset = matrixOffset; id matHex = matrixHex; id matAscii = matrixAscii; matrixOffset = [[MatrixHex alloc] initWithFrame:NSMakeRect(0.0, 0.0, 44.0, 16.0) rows:1 columns:1]; [matrixOffset setCellSize:NSMakeSize(40.0, 13.0)]; [matrixOffset setIntercellSpacing:NSMakeSize(0.0, 2.0)]; matrixAscii = [[MatrixHex alloc] initWithFrame:NSMakeRect(0.0, 0.0, 192.0, 16.0) rows:1 columns:16]; [matrixAscii setCellSize:NSMakeSize(12.0, 13.0)]; [matrixAscii setIntercellSpacing:NSMakeSize(0.0, 2.0)]; matrixHex = [[MatrixHex alloc] initWithFrame:NSMakeRect(0.0, 0.0, 364.0, 16.0) rows:1 columns:16]; [matrixHex setCellSize:NSMakeSize(19.0, 13.0)]; [matrixHex setIntercellSpacing:NSMakeSize(4.0, 2.0)]; rowsInSector = sectorSize / 16; int i = 0; for (i = 0; i < rowsInSector; i++)//one row already there. so one extra row for showing "---" { [matrixOffset addRow]; [matrixHex addRow]; [matrixAscii addRow]; } [matrixOffset sizeToCells]; [matrixAscii sizeToCells]; [matrixHex sizeToCells]; [splitViewForMatrices setVertical:YES]; [splitViewForMatrices setFrameSize:NSMakeSize([splitViewForMatrices frame].size.width, [matrixOffset frame].size.height + 4)]; if (matOffset) { [splitViewForMatrices replaceSubview:matOffset with:matrixOffset]; [splitViewForMatrices replaceSubview:matHex with:matrixHex]; [splitViewForMatrices replaceSubview:matAscii with:matrixAscii]; matOffset = matrixOffset; matHex = matrixHex; matAscii = matrixAscii; } else { [splitViewForMatrices addSubview:matrixOffset]; [splitViewForMatrices addSubview:matrixHex]; [splitViewForMatrices addSubview:matrixAscii]; } [scrollView setNeedsDisplay:YES]; Please share any insights you may have about the problem. Thanks, Nick _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com