2

の中に入れましUITextViewUITableViewCell。ユーザーが何らかのボタンをタップすると、 を呼び出して[UITableView relodaData]内のコンテンツを更新しUITextViewます。

私の目的は、UITextViewreloadData が呼び出された後に内部で選択を設定することです。で利用 できるのと[UITableView reloadData]同じように、 method で利用できるコールバックメソッドはありますか。performBatchUpdatesUICollectionView

4

1 に答える 1

1

通常、テーブル ビューをリロードしても、最初の応答者は辞任しません。.など、コード内の何かである必要がありますcellForRowAtIndexPath

とにかく、失われたフォーカスを復元するには、どの textView が編集されているかを追跡し (1 つしかない場合ははるかに簡単です)、呼び出す前にそれを覚えておき、reloadDataその後カーソルを復元します。

- (void)textViewDidBeginEditing:(UITextView *)textView {
    _currentEditingTextView = textView;
}
- (void)textViewDidEndEditing:(UITextView *)textView {
    _currentEditingTextView = nil;
}
- (void)yourUpdate {
    UITextView *editingTextView = _currentEditingTextView; 
    [tableView reloadData];
    [editingTextView performSelector:@selector(becomeFirstResponder) 
                           withObject:nil 
                           afterDelay:0.1]
}

また、1 つのセルのみを更新する必要がある場合は、reloadRowsAtIndexPathsメソッドで行います。または、textview のテキストのみを更新する必要がある場合は、それを直接行います。

((YourCellClass *)[tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:yourRow inSection:0]]).textView.text = ...;
于 2013-09-05T07:30:18.133 に答える