It supports device rotation - works for all orientations;     It doesn't hardcode the values for animation duration and curve, it reads them from the keyboard notification;     It utilizes UIKeyboardWillShowNotification instead of UIKeyboardDidShowNotification to sync keyboard animation and custom actions;     It doesn't use the deprecated UIKeyboardBoundsUserInfoKey;     It handles keyboard resize due to pressing the International key;     Fixed memory leak by unregistering for keyboard events;     All keyboard handling code is encapsulated in a separate class - KBKeyboardHandler;     Flexibility - KBKeyboardHandler class may be easy extended / modified to better suit specific needs;