Notifications

In a complex system like Cocoa Touch, the state of the various components is constantly changing. Many of the things that happen are out of your control, but if your app adapts to the new conditions, it will provide a much nicer user experience.

Wouldn't it be great for your app to know when these things happen? Cocoa Touch provides a general mechanism for letting your application know of these changes via notifications. For example:

  • The iPhone is locked or unlocked (UIApplicationWillResignActiveNotification and UIApplicationDidBecomeActiveNotification).

  • The device orientation changes from portrait to landscape (UIDeviceOrientationDidChangeNotification).

  • A user interface element causes the keyboard to appear onscreen (UIKeyboardDidShowNotification).

  • The battery charge level changes or the device is plugged in (UIDeviceBatteryLevelDidChangeNotification and UIDeviceBatteryStateDidChangeNotification).

  • A text editing view is updated (UITextViewTextDidChangeNotification).

  • The pasteboard (Clipboard) changes (UIPasteboardChangedNotification).

Many classes generate notifications, and any object can generate them. The ones shown in this list are just a few posted by UIApplication, UIWindow, UIDevice, UITextView, and UIPasteboard. As you can probably guess by looking at the list, the standard convention is to use the class name at the beginning and the word "Notification" at the end.

When you want your app to be notified, you provide an object, a selector, and the name of the notification. ...

Get iPhone App Development: The Missing Manual now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.