The call to canBecomeFirstResponder only checks if the receiver can itself become the first responder.
The call to becomeFirstResponder will fail and return NO if either the receiver can't become first responder or if the current first responder can't resign.