Ah. I shall have to look that up. Do you know of any good examples for view based tables?
As to the backtrace: * thread #1: tid = 0x2403, 0x00000001004cb55e DefaultPlugin`-[DefaultPlug cellPreferenceChanged:](self=0x000000010182a5b0, _cmd=0x0000000101826ea0, sender=0x000000010182cc00) + 30 at DefaultPlugin.m:233, stop reason = breakpoint 1.1 frame #0: 0x00000001004cb55e DefaultPlugin`-[DefaultPlug cellPreferenceChanged:](self=0x000000010182a5b0, _cmd=0x0000000101826ea0, sender=0x000000010182cc00) + 30 at DefaultPlugin.m:233 frame #1: 0x00007fff81d45989 AppKit`-[NSApplication sendAction:to:from:] + 342 frame #2: 0x00007fff81d457e7 AppKit`-[NSControl sendAction:to:] + 85 frame #3: 0x00007fff81d4571b AppKit`-[NSCell _sendActionFrom:] + 138 frame #4: 0x00007fff81d45989 AppKit`-[NSApplication sendAction:to:from:] + 342 frame #5: 0x00007fff81e7b37c AppKit`-[NSMenuItem _corePerformAction] + 406 frame #6: 0x00007fff81e7b06a AppKit`-[NSCarbonMenuImpl performActionWithHighlightingForItemAtIndex:] + 133 frame #7: 0x00007fff81b6828f AppKit`-[NSMenu _internalPerformActionForItemAtIndex:] + 36 frame #8: 0x00007fff81b68117 AppKit`-[NSCarbonMenuImpl _carbonCommandProcessEvent:handlerCallRef:] + 135 frame #9: 0x00007fff81e74175 AppKit`NSSLMMenuEventHandler + 342 frame #10: 0x00007fff8ae81d1a HIToolbox`DispatchEventToHandlers(EventTargetRec*, OpaqueEventRef*, HandlerCallRec*) + 1206 frame #11: 0x00007fff8ae811e9 HIToolbox`SendEventToEventTargetInternal(OpaqueEventRef*, OpaqueEventTargetRef*, HandlerCallRec*) + 410 frame #12: 0x00007fff8ae96fc9 HIToolbox`SendEventToEventTarget + 40 frame #13: 0x00007fff8aecdca9 HIToolbox`SendHICommandEvent(unsigned int, HICommand const*, unsigned int, unsigned int, unsigned char, void const*, OpaqueEventTargetRef*, OpaqueEventTargetRef*, OpaqueEventRef**) + 443 frame #14: 0x00007fff8ae72a21 HIToolbox`SendMenuCommandWithContextAndModifiers + 59 frame #15: 0x00007fff8ae729d3 HIToolbox`SendMenuItemSelectedEvent + 254 frame #16: 0x00007fff8ae7285f HIToolbox`FinishMenuSelection(SelectionData*, MenuResult*, MenuResult*) + 94 frame #17: 0x00007fff8afe8e79 HIToolbox`PopUpMenuSelectCore(MenuData*, Point, double, Point, unsigned short, unsigned int, Rect const*, unsigned short, unsigned int, Rect const*, Rect const*, __CFString const*, OpaqueMenuRef**, unsigned short*) + 1673 frame #18: 0x00007fff8afe8794 HIToolbox`_HandlePopUpMenuSelection7 + 629 frame #19: 0x00007fff81ef754b AppKit`_NSSLMPopUpCarbonMenu3 + 3916 frame #20: 0x00007fff82258caa AppKit`_NSPopUpCarbonMenu3 + 39 frame #21: 0x00007fff81ef650c AppKit`-[NSCarbonMenuImpl popUpMenu:atLocation:width:forView:withSelectedItem:withFont:withFlags:withOptions:] + 346 frame #22: 0x00007fff820ba295 AppKit`-[NSPopUpButtonCell trackMouse:inRect:ofView:untilMouseUp:] + 540 frame #23: 0x00007fff8214aeb0 AppKit`-[NSTableView _tryCellBasedMouseDown:atRow:column:withView:] + 1650 frame #24: 0x00007fff8214c32b AppKit`-[NSTableView mouseDown:] + 4540 frame #25: 0x00007fff81d3a53e AppKit`-[NSWindow sendEvent:] + 6853 frame #26: 0x00007fff81d36674 AppKit`-[NSApplication sendEvent:] + 5761 frame #27: 0x00007fff81c4c24a AppKit`-[NSApplication run] + 636 frame #28: 0x00007fff81bf0c06 AppKit`NSApplicationMain + 869 frame #29: 0x00000001000035b2 TestApp`main(argc=3, argv=0x00007fff5fbff858) + 34 at main.m:13 frame #30: 0x0000000100001c94 TestApp`start + 52 On 24 Mar 2013, at 22:06, Quincey Morris <quinceymor...@rivergatesoftware.com> wrote: > On Mar 24, 2013, at 14:50 , Pax <45rpmli...@googlemail.com> wrote: > > You may be more successful if you use a view-based table rather than a > cell-based table. One of the reasons we have view-based tables is to be able > to avoid dealing with cells directly, in situations like this. > > However, if you've never used a view-based table before, the learning curve > is fairly steep (though short). > >> As to your second question, I've connected the "selector" connection from >> the cell to 'cellPreferenceChanged'. In my header I have: >> IBOutlet NSPopUpButtonCell* preferenceCell; >> - (IBAction)cellPreferenceChanged:(id)sender; >> and both are hooked up in IB. > > Ugh, it doesn't look right to set up an outlet to a cell like this. Table > views deal with cells at two points: > > 1. When obtaining a cell for a given column. It uses the delegate method > 'tableView:dataCellForTableColumn:row:' to get the cell, which may or may not > be the one that's in the nib file. It does a certain amount of configuration > of the cell after this method returns. > > 2. When preparing the cell for a drawing specific row. It uses the delegate > method 'tableView:willDisplayCell:forTableColumn:row:', and does more > configuration before this method is called. > > So, rather than keeping an outlet to a cell that might not be the one used in > any given case, you should use one of the above delegate methods to find out > which cell is actually being used. > > That's if you need to know the cell in your code, which is doubtful. > >> As to the third, how do I find out? > > In Xcode, set a breakpoint in the action method. When you get to the > breakpoint, go to the debugger console and type the "bt" command. That will > give a backtrace you can copy and paste into an email. > > _______________________________________________ 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: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com