Mac notifications appear and then disappear within a few seconds, and if you’re away from your Mac you’ll miss them.
To get them to stick around essentially forever, until you dismiss them, open a Terminal window (you’ll find it in the Utilities folder of the Applications list), then copy and paste in the following (it’s a single line – triple-click it and then copy/paste it):
defaults write com.apple.notificationcenterui bannerTime 99999
And then log out and back in again.
Note that there are two types of notifications on a Mac: Banners, and Alerts. Banners replace each other, which is to say if there’s already a banner notification on-screen then a new one will replace it. In contrast, alert notifications stack on top of one another, so that the new one will push the older one(s) down the screen – but all the notifications past and present will still be visible until you dismiss them. Therefore, it makes a lot of sense to turn all app notifications into alerts, for the trick above to be fully effective. You can do this in System Preferences by clicking the Notifications icon, then selecting each app icon and selecting Alerts on the right, rather than Banner.
If entering a terminal command sounds too complicated you can try the CustomNC app, that lets you alter the display time and much more besides, including altering the animation style when the dialog appears and disappears. However, this installs a SIMBL plugin, which is a system hack that can cause problems when it comes time to update your system. For this reason I personally tend to avoid any apps that rely on SIMBL – but many people have no issues. YMMV.
If you want to create your own notifications for fun, or to test out your new setting, you can use the terminal-notifier Ruby gem. This is installed again by opening the Terminal window and pasting in the following single line:
sudo gem install terminal-notifier
You’ll need to type your login password when prompted. Then you can use the command line this:
terminal-notifier -message "This is a test"
Be careful about using certain symbols like exclamation marks here because these have special uses at the command-line and confuse it.