Lorsque je fais glisser des lignes d'une NSTableView vers une autre NSOutlineView, NSOutlineView obtient une bordure de mise en évidence jaune. Comment puis-je éviter cela?NSOutlineView: Hot pour éviter la bordure jaune lors du déplacement d'éléments?
Pour être précis, cela se produit uniquement si je fais glisser les lignes de la table dans l'espace libre (c'est-à-dire sur aucun élément) de NSTableView. Toutefois, lorsque je fais glisser les lignes directement sur les éléments dans NSOutlineView, la bordure jaune n'apparaît pas, mais (bien sûr) les éléments sont sélectionnés eux-mêmes.
La partie importante de outlineView:validateDrop:proposedItem:proposedChildIndex:
dans la source de données NSOutlineViews ressemble à ceci:
- (NSDragOperation)outlineView:(NSOutlineView *)outlineView
validateDrop:(id <NSDraggingInfo>)info
proposedItem:(id)item
proposedChildIndex:(NSInteger)index
{
if ([info draggingSource] == myOtherTableView) {
[outlineView setDropItem:item
dropChildIndex:NSOutlineViewDropOnItemIndex];
return NSDragOperationMove;
}
return NSDragOperationNone;
}
Merci pour toute aide!
La bordure de couleur de sélection apparaît pour indiquer que la suppression est valide; c'est-à-dire que l'utilisateur peut laisser tomber ici, et le ou les éléments glissés vont effectivement tomber, et ne pas revenir en arrière. C'est une fonctionnalité, et je ne comprends pas pourquoi vous voulez le bloquer. –
@Peter Hosey - vous devriez passer à une réponse. Parfois, la réponse à «comment faire ça» est «ne fais pas ça». – TechZen