Every now and then when you wake your Mac from sleep, change resolution or other display settings, or otherwise adjust your system’s display output, you may be left with a window or two that are pushed off the edge of your screen. If this happens, you can usually grab its toolbar and drag it back into view; however, if it happens along the top edge of your display, then this toolbar may be hidden. OS X should detect these occurrences and snap your window down to be in view; however, this may not always happen, leaving you with no apparent way to recover your window.
If this happens, then a quick fix will be to simply resize your window by hovering your mouse over any exposed edge or corner, and then click and drag when it changes to a double-arrow. This change should update the Window Server to re-draw the window, which should force it back onto your desktop. You can also close and re-open the document being represented by the window, to do a similar reset.
To get around problems with Resume, first ensure your documents are all saved, and then hold the Option key when quitting the application (done from the application menu, or by pressing Option-Command-Q). This will force the program to close all windows before quitting, which will reset the program’s resume settings. Granted this will also clear out any workflow you are depending on Resume to preserve, but you can get it back by re-opening your documents.
If quitting the program in this manner does not clear the issue, then try manually removing your program’s Resume saved state. This can be done from one of two areas in your system, depending on whether or not the program is sandboxed (sequestered from other programs by system security rules).
For non-sandboxed programs, go to your user library (hold the Option key and then choose Library from the Go menu in the Finder), and then go to the Saved Application State folder. In here, locate and remove the folder for your program, which should be named to include the developer and application name (e.g., com.apple.TextEdit.savedState, for Apple’s TextEdit program). With this folder removed, re-launch the program to create a new one and load a new Saved State from scratch.
If your program is sandboxed, then you will not see its saved state in this directory. Instead, go to the Containers folder in your user library, in which you should find a similarly-named folder that contains the app’s name and developer (e.g., “com.apple.TextEdit”). Open this folder, and go to the Data > Library > Saved Application State folder, in which you will see one directory again named after the app’s name and developer, which ends with “savedState” in its name. Remove this one, and then re-launch the program to have the system create a new one.
There is a great free utility called BetterTouchTool that, among its vast number of other features, allows you to move and/or resize windows with just a mouse and a modifier key combination held down. In the example above, you would simply move the mouse anywhere over the window, hold down (for example) the Command, Option, and Control keys on your keyboard, and then just move the window down. There are other apps that will let you do the same thing, but BetterTouchTool is superb, and lets you modify all of your input devices in numerous ways. BetterTouchTool: http://www.bettertouchtool.net
Another method for handling the offscreen window issue is mentioned in the superlative web comic xkcd, here: http://www.xkcd.com/1479/