I am designing an app with some forms. I have looked at other Cocoa apps to see how they handle the submission of forms. Some apps don't have a submit button and update their backing datastore (or whatever) when, say, a control loses focus or a window is closed. Other's however use a submit button. Is there a rule or heuristic for when to use a submit button and when not?