Here's a peculiar little case that I hope is easy to resolve.

Here's the case I ran into:

I had bound an NSTextField to an attribute of an object. The interface
at that point implied that the user could update the value in that
field, then immediately click a button to perform an action. The
problem was that the value wasn't updated yet, since the user hadn't
pressed enter. Just clicking the button apparently isn't enough for
the text field to lose focus and commit the changes.

To fix, I rewired to use an NSObjectController that pointed at my
object, and then bound through that instead of directly to the object.
Then, when my save: method was called, I first called
[myObjectController commitEditing] and checked its return value. If it
succeeded, then there were no validation errors and I continued
saving. If it failed, then I bowed out and presented the dialog to the
user to fix. Worked like a charm - either my field was saved or the
user got an error right away.

The problem is that when the button is pressed the error message
displays in a new window, whereas if the user were to hit enter, the
error message displays in a sheet.

I have a simple little test program to illustrate the issue:
http://www.bassetsoftware.com/osx/bindingsfail.zip

Type in any value to the field. If you type in "Microsoft", it fails
with a validation error. If you type it in and hit Return, the error
displays in a sheet. If you type it in and hit the "Save changes"
button, it displays in a window. It's as if the object controller no
longer knows what window it's associated with, so the sheet displays
as a window instead.

Is there anything I can do differently to get my error to display in a
sheet? Because if there isn't something else I can do, I'm going to
consider this a bug and file a report.

Thanks,

-Jim.....
_______________________________________________

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]

Reply via email to