2011-12-20 2 views
0

В моем профиле создания у меня есть только два текстовых поля: вес и дата рождения. Когда пользователь прикасается к весу, показывает клавиатура. Но когда пользователь прикасается к дате рождения, в листе действий появляется сборщик дат. Когда пользователь выбирает дату и нажимает кнопку «Готово», панель действий исчезает, но клавиатура остается открытой. И нет никакой возможности скрыть эту клавиатуру. Я использовал метод resignFirstResponder, но не повезло.Программно оставьте клавиатуру iPhone

+2

Что вы пробовали? Поместите некоторый код. 'resignFirstResponder' - это правильный путь. – visakh7

+0

Правильный ответ на правильный ответ, нажав на стрелку. Это поможет вам в будущем получить постоянную помощь от SO. Благодарю. – Sarah

ответ

4

вам нужно сделать это, когда вы хотите, чтобы скрыть клавиатуру:

[textfield resignFirstResponder]; 
+0

Я пробовал, но клавиатура не скрывает. –

+0

Вы уверены, что уволили правильное текстовое поле? Может быть, переменная текстового поля равна нулю или указывает на другое текстовое поле на выбранное. Попробуйте записать значение текстового поля, используя NSLogo, перед вызовом resignFirstResponder. –

+0

О, я был забыт [txtField становитсяFirstResponder] –

1

ли вы включить метод:

-(BOOL) textFieldShouldReturn:(UITextField *)textField{ 

    [textField resignFirstResponder]; 
    return YES; 
} 

или

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    UITouch *touch = [[event allTouches] anyObject]; 
    if ([txtComment isFirstResponder] && [touch view] != txtComment) 
    { 
     [txtComment resignFirstResponder]; 
    } 
    [super touchesBegan:touches withEvent:event]; 
} 
+0

Я использовал оба метода. О, я забыл [txtField становитсяFirstResponder] Теперь его работы прекрасны. Спасибо за вашу поддержку. –

0
-(void) ViewDidLoad 
{ 

// your some codes 

    UITapGestureRecognizer *gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hideKeyboard)]; 
    [self.view addGestureRecognizer:gestureRecognizer]; 
    gestureRecognizer.cancelsTouchesInView = NO; 
} 

- (void) hideKeyboard 
{ 
    [textfiledname1 resignFirstResponder]; 
    [textfieldname2 resignFirstResponder]; 
} 
1

[[[UIApplication sharedApplication] keyWindow] endEditing:YES]; будет работа для вас.

+0

Он отлично работает. –

Смежные вопросы