Fixed first responder bug, added done button, introduced objc_setAssociatedObject