On 06/02/2013, at 2:08 PM, livinginlosange...@mac.com wrote:

> Now users can edit an item 2 ways. They can tab into the control (in this 
> case an NSTextField or an NSComboBox) or mouseDown: into the control. I want 
> to basically interpose both ways of accessing a control. The minute they try 
> to click into a control, I want to perform logoc to determine multiple 
> selection and then thrown an NSRunAlert… that they are about to edit multiple 
> items.
>       Does anyone know of a good way to do this?


That sounds like a fairly poor user experience.

If an alert is necessary, I'd throw that up when trying to commit the edit, and 
then only if the value has changed, that way the user won't get constantly 
interrupted simply by changing the focus in your interface.

But try to avoid the alert altogether.

For example, when using bindings, a field that represents the value of a 
multiple selection will show <multiple values> in red if the values of that 
property among the items in the selection differ. That immediately tells the 
user that they are about to edit multiple values without interrupting them, 
then if they go ahead and change it, they *know* they're editing several items.

The situation where you have a multiple selection but the value of the property 
happens to be the same is handled by bindings by showing the value the value as 
normal, so there is no indication that this represents multiple items. But it 
should also be clear elsewhere in your interface that you have selected 
multiple items (e.g. in a list, you can see several items highlighted), so this 
isn't the problem it might seem.

--Graham
_______________________________________________

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