On Oct 14, 2008, at 12:45 AM, Martin Redington wrote:
On Tue, Oct 14, 2008 at 5:25 AM, Andy Lee <[EMAIL PROTECTED]> wrote:
How about if you leave the matrix class alone and do [myBrowser
setSendsActionOnArrowKeys:YES]? Then give the browser a target and action,
and in the action method do whatever you have to do.

That sounds promising, although a bit disappointing and possibly still
a tiny bit hacky.

It works for me. I did a quick test and it caught all the cases I tried, though I may have missed something. If it helps with the ick factor, I would say that it's much less hacky to take advantage of one method's documented purpose -- "do something when the selection changes, even if it's via keyboard" -- than to do trivial overrides of multiple methods that you select by trial and error.

The only possible issue I found with this approach is that it also catches at least one case where the selection *isn't* changing: if you have just one cell selected and you click it, the action method will be called even though the selection hasn't changed. That should be easy to work around if it causes a problem.

Surely it shouldn't really be that hard to capture/intercept selection
changes - to have to resort to trial and error over-riding of
selectXXX, et al. methods is a bit irksome.

I agree, it seems a weird omission, given that with NSTableView you have a choice of using either a delegate method or a notification for that very purpose.

--Andy

_______________________________________________

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 [EMAIL PROTECTED]

Reply via email to