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

Reply via email to