hidekeyboard and detach delegate