• 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
Bypassing inter-cell navigation for NSButtonCell in NSOutlineView
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Bypassing inter-cell navigation for NSButtonCell in NSOutlineView


  • Subject: Bypassing inter-cell navigation for NSButtonCell in NSOutlineView
  • From: Nicholas Riley <email@hidden>
  • Date: Sun, 2 Mar 2008 06:29:18 -0600

In Leopard, checkboxes in my NSOutlineViews get keyboard focus when I press Tab. I don't want this to happen.

The AppKit release notes <http://developer.apple.com/releasenotes/Cocoa/AppKit.html > state:

Tables now support inter-cell navigation as follows:

- Tabbing forward to a table focuses the entire table.
- Hitting Space will attempt to 'performClick:' on a NSButtonCell in the selected row, if there is only one instance in that row.

So far, so good.

- Tabbing again focuses the first "focusable" (1) cell, if there is one.

I don't want the NSButtonCell to ever get focus.

(1) A focusable cell is generally defined as [cell isEnabled] && [cell isSelectable] in a table column that is editable. However, NSTextFieldCells also check if the row is selectable, and tableView:shouldEditTableColumn:row: returns YES (if implemented by the delegate). NSImageCells cannot be focused. NSButtonCells only check if the [cell isEnabled].

Disabling the NSButtonCell is not feasible; I want it to be operable.

I've tried a number of things that don't help, including:

1. [checkBoxColumn setEditable: NO];

2. [checkBoxCell setEditable: NO];

3. [checkBoxCell setRefusesFirstResponder: YES];

4. - (BOOL)outlineView:(NSOutlineView *)ov shouldTrackCell:(NSCell *)cell forTableColumn:(NSTableColumn *)column item:(id)item {
return NO;
}


5. - (BOOL)outlineView:(NSOutlineView *)outlineView shouldEditTableColumn:(NSTableColumn *)tableColumn item:(id)item {
return NO;
}


6. - (BOOL)outlineView:(NSOutlineView *)outlineView shouldSelectTableColumn:(NSTableColumn *)tableColumn {
return NO;
}
(a long shot, certainly)


7. overriding keyDown: in the outline view to intercept Tab, which works fine, except...

- Back tabbing into a table will select the last focusable cell.

and I can't figure out how to stop that from happening.

Help?

--
Nicholas Riley <email@hidden> | <http://www.uiuc.edu/ph/www/njriley>

_______________________________________________

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


  • Follow-Ups:
    • Re: Bypassing inter-cell navigation for NSButtonCell in NSOutlineView
      • From: Ricky Sharp <email@hidden>
    • Re: Bypassing inter-cell navigation for NSButtonCell in NSOutlineView
      • From: Tommy Nordgren <email@hidden>
  • Prev by Date: how to forward the event into the document view of the clip view in a NSScrollView?
  • Next by Date: Re: [NSOutlineView] How to know an item is expanded if its parent item is not?
  • Previous by thread: how to forward the event into the document view of the clip view in a NSScrollView?
  • Next by thread: Re: Bypassing inter-cell navigation for NSButtonCell in NSOutlineView
  • Index(es):
    • Date
    • Thread