I have some text edit fields, and also a button to show a uidatepicker.. if I go to the uitextedit, the keyboard appears, but when I cli开发者_StackOverflowck the button, the keyboard is still here... how can I remove it?
thanks!
You need to use resignFirstResponder
, see this similar question.
[myTextField resignFirstResponder];
See this answer for the easiest way to do it: Easy way to dismiss keyboard?
[self.view endEditing:YES];
Call -resignFirstResponder
on your currently-editing text field.
There are cases where I don't have direct access to the 'first responder', so I tend to use a different approach. I have a utility class for the keyboard with, among other functions, this one:
+ (BOOL)dismiss:(UIView *)view
{
if (view.isFirstResponder) {
[view resignFirstResponder];
return YES;
}
for (UIView *subView in view.subviews) {
if ([Keyboard dismiss:subView]) // It's calling itself, just to be perfectly clear
return YES;
}
return NO;
}
This lets me simply call for example: [Keyboard dismiss:self.view]
from anywhere within a UIViewController
.
精彩评论