Greetings John… and everyone else. 8)
I have come up with what I feel is a very good workaround to the problems with table views/outline views not registering both single and double clicks. I have found a way to use only the clicked handler to implement the functionality of both handlers… using some obj-c calls and some creative applescript.
Basically, when the user clicks the view, the code below will query the window for a reference to the current event. The window pretty much does all of the recording of events, registering them behind the scenes as single or double clicks. You can simply ask the window how many clicks are in the click count, and then respond to the event accordingly.
In this example, I ask the window for a reference to the last event, and set it to a variable. Using that reference to the event, we can use the built-in applescript studio commands (as with a mouse-down or mouse-up handler) to get information about the event. I ask it what the click count is… i.e single or double click… and then do an action accordingly.
I also added my code for displaying a psuedo-context menu for the item clicked. This requires you to set up one or more popup buttons to serve as your ‘context menus’. Make them pull-down buttons, and use the “send to back” option to place them behind the table/outline view. This will make them ‘invisible’ under normal circumstances, but because menu items have one of the highest window levels, they pop “through” the table view and seem to pop up from the clicked item. I test for the control key down using the ASS ‘control key down’ event property, and then use the location property of the event to find out where exactly we clicked. Do a little math to adjust where you want the menu to pop up in relation to your cursor when you click, and then call the appropriate popup button’s “performClick:” method to make it pop up at the cursor. Since it’s a real menu in the window, making it’s connections is easy, and you don’t run into any of the errors you find when trying to use the ‘official’ context menu protocol using connections between an object and a menu.
The only potential downfall to this method I’ve found so far, is that it may take a brief moment for the menu to reposition before it pops up. One major ADVANTAGE to this context menu method is that because you’re clicking the row, not the view itself, the item highlights before the menu pops up, so you can be assured that the menu is popping up for that row, not just at that point in the view. Those of you wishing to provide unique context menu’s for different items or levels in the view will appreciate this. Using the context menu connection in IB between a view and a menu does not implement this properly, where a control click on an item will bring up the menu, but will NOT highlight the item selected… making it impossible to pop up a specific menu customized for THAT ITEM.
on clicked theObject --> Connected to the table/outline view
set theEvent to call method "currentEvent" of (window of theObject)
if ((click count of theEvent) as string) = "2" then --> User double-clicked
display dialog "Do Double-click action here"
else --> User single-clicked
if ((control key down of theEvent) as boolean) then --> User wants the context menu
set {tmpH, tmpV} to location of theEvent
tell popup button "popup" of (window of theObject)
set position to {(tmpH - 2), (tmpV + 1)}
call method "performClick:" of it
end tell
else --> Regular single-click
display dialog "Do Single-click action here"
end if
end if
end clicked
It took me a while to come up with this, so I figured others could benefit from knowing about this technique. Have fun… 
j