ここでちょっと気が狂いそうです。いくつかのスタンドアロンUITextField
の 、いくつかUITextFields
のの詳細ビュー、およびメモを保持するために使用されるUITAbleViewCell
1 つのシングル(存在する場合) があります。UITableViewCell
編集モードのときにのみ、このセルを選択できるようにします。編集モードでないときは、選択したくありません。(編集モードで) セルを選択すると、新しいビューを開始するメソッドが起動されます。これは非常に簡単ですが、どこかが欠けています。
私が使用している現在の選択方法は次のとおりです。
-(NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if (!self.editing) {
NSLog(@"Returning nil, not in edit mode");
return nil;
}
NSLog(@"Cell will be selected, not in edit mode");
if (indexPath.section == 0) {
NSLog(@"Comments cell will be selected");
return indexPath;
}
return nil;
}
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if (!self.editing) {
NSLog(@"Not in edit mode. Should not have made it this far.");
return;
}
if (indexPath.section == 0)
[self pushCommentsView];
else
return;
}
私の問題は実際には 2 倍です。
1) 編集モードでなくても、nil
(メッセージのためにNSLog
) 戻ることがわかっている場合でも、行を選択できます (青く点滅します)。メソッドの私の理解からwillSelectRowAtIndexPath
、これは起こるべきではありません。多分私はこれについて間違っていますか?
2) 編集モードに入ると、何も選択できません。メソッドは起動せず、willSelectRowAtIndexPath
も起動しませんdidSelectRowAtIndexPath
。メソッドで行っている唯一のことはsetEditing
、編集中に戻るボタンを非表示firstResponder
にし、上部の textField に割り当ててキーボードをポップアップさせることです。ファーストレスポンダーがクリックの邪魔をしているのかもしれないと思ったのですが(これはばかげているでしょう)、それをコメントアウトしても、編集中にセルの選択を実行できません。