それぞれに UITextField を含むいくつかのカスタム UITableViewCells を保持する UITableView を実装しています。
いくつかのイベントでキーボードを非表示にすることを望むほとんどの人とは異なり、私は常に表示することを望んでいます。問題は、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 のデリゲートは実装しませんでした。するべきか?