On Jan 2, 2013, at 9:59 AM, Patrick Cusack wrote: > Sorry, I might not be clear. I have a table view that is bound to an > NSArraryController. I want users to be able to edit single and multiple > selections from a detail view that has NSTextfields and ComboBoxes. There are > occasions where users forget that they have selected multiple items and > proceed to edit cues, unaware that they are actually mutating more than one > row of data. When an editor tabs into a control like the NSTextField or > NSComboBox, I want to give them a chance to discard editing. I can easily > deduce that multiple items in my NSArrayController are selected, throw an > NSRunAlert, and give users an option to make a choice, but at that point, I > have already entered focus into the control and any attempt to leave that > control will still change the selected items. I tried overriding > acceptsFirstResponder, and conducting my test in that selector, but > acceptsFirstResponder gets called more than once, and then the control passes > focus onto the next control in the kew view loop. Really what I want to a > accomplish is to discard the editing and resign focus from the control.
No--my error--you did say that you are editing in a detail interface. The only thing I can think of is to register a controller as the delegate for the detail fields, then you have access to control:textShouldEndEditing: and friends (look for the NSControlTextEditingDelegate protocol in the docs). All NSControl subclasses use these so it should work for your combo boxes as well. > On Jan 2, 2013, at 6:41 AM, Keary Suska wrote: > >> On Jan 2, 2013, at 12:05 AM, livinginlosange...@mac.com wrote: >> >>> I have an application where a user can select multiple rows of data from an >>> NSArrayController and edit those rows from a detail view. Now, there are >>> cases where users have inadvertently changed the values for multiple rows >>> of data when they did not intend to. How can I warn a user when they enter >>> a texfield or nscombobox that they are about to edit multiple rows of data >>> and gracefully give them a way to back out? I noticed that there is no way >>> to discard editing when in a textfield. Is that the case? I am using the >>> control: textShouldEndEditing: delegate method which allow me to get 90% of >>> the way there, but the textfield retains focus, and I can not tab out of >>> the field without getting my warning. Ideally, pressing "esc" should allow >>> me to discard any editing and make the field lose focus. >> >> IIRC you can set a delegate to the table view and implement >> tableView:shouldEditTableColumn:row:, and you should be able to prevent >> editing from even starting until the user has confirmed. Keary Suska Esoteritech, Inc. "Demystifying technology for your home or business" _______________________________________________ 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