I understood that [Apply] button does the same as [OK] without closing the modal form. Is it a programmer's trick to see changes outside current form and still be focused to it? Maybe it is like safe presave to try applying changes? Is it a common pattern (except windows opertion system or other one)?

In additional, user cannot rollback applied changes when click [Cancel].

3 Answers 3


Apply allows as others said the application of a change without closing the dialog.

The advantage over "OK" is when you have a dialog that spawns multiple tabs. Here it gives you a cozy feeling that changes on one tab are saved.

Also in the case of a "workflow", first applying one change will allow you to select other (related) options later: In OS X as example, the preferences consist of a window with many setting panes inside. Each of the panes take care of one aspect. There are some for language or for keyboard layout, networking and so on. Now when you e.g. want to hook up another network and then share e.g. a disk over this network, you first go to the network prefs and enable the interface and then to the sharing panel which can then make use of this network. If you only had "ok" after applying the network change, you'd force the user to re-open the preferences for the next step.


The idea is to let the user see the effect of changes without closing the dialog.

  • classic model: OK closes the dialog and applies changes
  • instant model: effect of changes is visible with every click and key press (e.g. typing a letter updates search results)
  • Apply button: half the deal with a tenth of cost.

Note that the user model is different. In classic, the user knows what he wants and knows what change is needed to achieve that. In instant, the user plays with knobs until things look good. That's a significant gap that affects large parts of the UX and program design.

The apply button allows much less effort in implementation, e.g. no undo information required when user clicks cancel, and relatively few code structure changes are required compared to the classic model, while delivering half the experience. Of course, it's limited. Often, the dialog is in the way of the thing you need to see, it still takes some mouse clicks, etc.

So in most cases, it's a transitional pattern. There are some cases where "instant" doesn't work, or requires extra complexity, e.g. when Apply takes 500ms or more, you may need to move the update to a worker thread.

  • 1
    It's confused that user cannot rollback applied changes when click [Cancel].
    – igor
    Commented Feb 24, 2011 at 14:08
  • 1
    I've seen a couple dialog boxes that have a [Reset] button that at least gets you to some defaults if you royally mess things up. Commented Feb 24, 2011 at 14:53
  • @igor: yes, it's far from perfect. Maybe even "half the deal" is overstating it. It can be a significant improvement to not having an Apply button, but I guess most are in because developers couldn't decide between "OK" and "Apply".
    – peterchen
    Commented Feb 24, 2011 at 19:02
  • No, applied changes can never be rolled back, whether you use ok or apply. Cancel always gets you back to the last applied changes. So if you use apply, change a few more options and then hit cancel, only your last changes (after you used apply) will be ignored/ rolled back. It is used frequently enough for users to be accustomed to it. Commented Feb 25, 2011 at 8:35

I have been using Windows all my life, but switched to Mac (OS X) some months ago. The difference aren't as big as I though, but one thing feels weird - a lot of settings in OS X is applied directly when altered, and when you are done you have to close the settings window on the top left close button instead of "ok" or "cancel". I guess no way is the right way but clearly OS X and Windows sees different solutions as the right way...

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.