on 2008-09-01 11:41 PM, Ron Wagner at [EMAIL PROTECTED] wrote: > I am trying to get an NSTableView to change it's selection when > clicking on one if it's cells when it's window is not active. I have > subclassed NSTableView, overridden acceptsFirstMouse: and return YES > unconditionally, and verified that it is getting called. Can't seem to > get it to change behavior. Still takes once click to activate the > window and a second click to select the clicked on cell. What is the > trick to getting this to work?
In general, holding the Command key down while clicking user controls in a background application appears to be the standard Mac OS X convention for keeping the application in the background. But it doesn't work in table views without a little help. In PreFab UI Browser 2.0, I allow a Command-click on a table view row to select the row while leaving the application in the background by subclassing NSTableView and overriding -mouseDown:, as shown below. The call to the -tableView:shouldSelectRow: delegate method is in there because I implement it anyway for other reasons; if you don't need that, you'll have to modify this snippet a little. @implementation PFClickthroughTableView - (void)mouseDown:(NSEvent *)event { // Allow Command-click on a table row to select the row under the mouse if the application is in the background, without bringing the application to the front; normally, Command-click would deselect the row. if (![NSApp isActive] && ([event modifierFlags] & NSCommandKeyMask)) { NSInteger row = [self rowAtPoint:[self convertPoint:[event locationInWindow] fromView:nil]]; if ([[self delegate] tableView:self shouldSelectRow:row]) { [self selectRowIndexes:[NSIndexSet indexSetWithIndex:row] byExtendingSelection:NO]; [self sendAction:[self action] to:[self target]]; } return; } [super mouseDown:event]; } -- Bill Cheeseman - [EMAIL PROTECTED] Quechee Software, Quechee, Vermont, USA www.quecheesoftware.com PreFab Software - www.prefabsoftware.com _______________________________________________ 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]