• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Implementing a Slightly Unusual NSTableView
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Implementing a Slightly Unusual NSTableView


  • Subject: Re: Implementing a Slightly Unusual NSTableView
  • From: Peter Zegelin <email@hidden>
  • Date: Mon, 21 Apr 2008 20:16:38 +1000

Thanks Graham - I have updated my code as well.

I also think I solved the focus problem. Tried most of the responder methods without luck so I took a different tack. I realized that I would only have 3 views that could grab the focus so I created a global variable 'currentResponder' (will make it local to the window when I figure out how) and set it in becomeFirstResponder of the other views. Then in my 'special' tableview if I am clicking on a checkbox I just call:

[[self window] makeFirstResponder: currentResponder];

to set the focus back to the original view. Works like a treat even if it seems a bit of a hack.

regards,

Peter
www.fracturedSoftware.com


On 21/04/2008, at 12:36 AM, Graham Cox wrote:

I just noticed a bug in the code I posted - it should be:

- mouseDown:
...

if ([dataCell trackMouse:event inRect:cellFrame ofView:self untilMouseUp:YES])
{
// call the datasource to handle the checkbox state change as normal
[[self dataSource] tableView:self setObjectValue:[dataCell objectValue] forTableColumn:theColumn row:row];
}
...



previously I passed dataCell directly, not [datacell objectValue], and I passed it to the delegate, not the dataSource.


In fact passing <dataCell> works with many cell types such as buttons and checkboxes because they happen to implement methods such as stringValue and so on, but if you use a custom cell that returns something like a colour for example, that doesn't work. The delegate/ datasource mixup is another thing I got away with as usually they happen to be the same.

To be honest I'm having to sort of guess how the tableview is actually calling its dataSource, so this could still be wrong, but so far this handles all the cases I've thrown at it (admittedly not that many, but includes a variety of standard and custom cells).

G.

_______________________________________________

Cocoa-dev mailing list (email@hidden)

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:
This email sent to email@hidden


References: 
 >Implementing a Slightly Unusual NSTableView (From: Peter Zegelin <email@hidden>)
 >Re: Implementing a Slightly Unusual NSTableView (From: Graham Cox <email@hidden>)
 >Re: Implementing a Slightly Unusual NSTableView (From: Peter Zegelin <email@hidden>)
 >Re: Implementing a Slightly Unusual NSTableView (From: Graham Cox <email@hidden>)
 >Re: Implementing a Slightly Unusual NSTableView (From: Peter Zegelin <email@hidden>)
 >Re: Implementing a Slightly Unusual NSTableView (From: Graham Cox <email@hidden>)

  • Prev by Date: Re: After Unarchive Object Exists, After First GUI Action, gone...
  • Next by Date: Re: Trying to calculate a running total using Core Data
  • Previous by thread: Re: Implementing a Slightly Unusual NSTableView
  • Next by thread: Delete NSDefaults while running
  • Index(es):
    • Date
    • Thread