Keary,

I am checking whether or not the user is trying to edit multiple items in my 
delegate's - (BOOL)control:(NSControl *)control textShouldEndEditing:(NSText 
*)fieldEditor

If the choose to not complete editing, I should be able to discard editing on 
the bound NSArrayController, but my control still has focus after calling 
discardEditing.

Thoughts?

Patrick


On Jan 2, 2013, at 9:10 PM, Keary Suska wrote:

> On Jan 2, 2013, at 7:29 PM, Patrick Cusack wrote:
> 
>> Ok, I do have a delegate for my controls and am currently using 
>> control:textShouldEndEditing:. If I return no, however, my control still has 
>> focus, and I can't think of a programmatic way to lose focus without 
>> committing changes. 
> 
> You would call -discardEditing on the NSObjectController that should be 
> managing the detail interface.
> 
>> On Jan 2, 2013, at 5:20 PM, Keary Suska wrote:
>> 
>>> 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