Si vous mettez à YES les attributs Multi Selection et Multi Sélection During Editing d'un UITableView, cela ne fonctionnera pas comme attendu sur Mac. C'est juste énervant et voici ubout de code qui règle le problème.
#if TARGET_OS_MACCATALYST
-(NSIndexPath*)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if([tableView.indexPathsForSelectedRows containsObject:indexPath]) {
[tableView deselectRowAtIndexPath:indexPath animated:NO];
return nil;
}
return indexPath;
}
-(NSIndexPath*)tableView:(UITableView *)tableView willDeselectRowAtIndexPath:(NSIndexPath *)indexPath {
if([tableView.indexPathsForSelectedRows containsObject:indexPath]) {
return nil;
}
return indexPath;
}
-(BOOL)tableView:(UITableView *)tableView shouldHighlightRowAtIndexPath:(NSIndexPath *)indexPath {
for(NSIndexPath *ip in tableView.indexPathsForSelectedRows) {
[tableView cellForRowAtIndexPath:ip].highlighted = YES;
}
return true;
}
#endif
Commentaires