Я реализую UITableView, который содержит несколько пользовательских UITableViewCells, каждый из которых содержит UITextField.Второе нажатие на UITextField (в подклассе UITableViewCell) неожиданно отклоняет клавиатуру
В отличие от большинства людей, которые хотят, чтобы клавиатура исчезла при некоторых событиях, я хочу, чтобы она появлялась все время. Проблема в том, что первый щелчок на UITextField вызывает появление клавиатуры без каких-либо проблем. Но как только я снова нажимаю на него, клавиатура, которая сейчас появляется, исчезает.
Кроме того, другая связанная с этим проблема заключается в том, что я не могу изменить позицию курсора внутри UITextField. Как только я держу нажатие на UITextField, чтобы изменить текущую позицию курсора, увеличительное стекло появляется, как ожидалось. Но как только я отпустил кран, клавиатура немедленно закрывается.
Как решить эту проблему?
- (void)viewDidLoad
{
...
TagDetailCell *cell1 = [[[NSBundle mainBundle] loadNibNamed:@"TagDetailCellView" owner:self options:nil] lastObject];
TagDetailCell *cell2 = [[[NSBundle mainBundle] loadNibNamed:@"TagDetailCellView" owner:self options:nil] lastObject];
TagDetailCell *cell3 = [[[NSBundle mainBundle] loadNibNamed:@"TagDetailCellView" owner:self options:nil] lastObject];
self.cells=[NSArray arrayWithObjects:cell1, cell2, cell3, nil];
...
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell=[self.cells objectAtIndex:indexPath.row];
cell.selectionStyle=UITableViewCellSelectionStyleNone;
switch (indexPath.row) {
...
((TagDetailCell*)cell).fieldLabel.text= ...;
((TagDetailCell*)cell).fieldValue.clearButtonMode=UITextFieldViewModeWhileEditing;
((TagDetailCell*)cell).fieldValue.text=...;
[((TagDetailCell*)cell).fieldValue addTarget:self action:@selector(textFieldChanged:) forControlEvents:UIControlEventEditingChanged];
...
}
return cell;
}
Я не реализовал ни одного делегата UITextField. Нужно ли мне?
Благодарим за полезную информацию. Я этого раньше не знал. Тем не менее, клавиатура все еще исчезает даже после того, как я возвращаю 'YES' в' disablesAutomaticKeyboardDismissal'. Настройка стиля презентации на 'UIModalPresentationFormSheet' также не помогает. –
Я попытался удостовериться, что 'disablesAutomaticKeyboardDismissal' вызван правильно, но эта функция вообще не вызвана. Есть идеи? –
Попробуйте установить делегат 'UITextField' на ваш контроллер представления. – Gobot