2010-11-16 29 views
0

J'ai un NSCollectionView que je veux accepter des éléments tirés d'ailleurs dans mon application.La validation d'un glisser vers un NSCollectionView n'est pas reflétée visuellement

J'implémente collectionView:validateDrop:proposedIndex:dropOperation: et collectionView:acceptDrop:index:dropOperation: dans le délégué de collection et de vous inscrire pour les types déplacés appropriés. Les deux méthodes sont appelées très bien lorsque je fais glisser les types appropriés, mais je n'obtiens pas de bague de mise au point bleue sur la vue de collection indiquant un glissement valide.

Avoir essayé à la fois la vue de collection et sa vue de défilement contenant les paramètres par défaut et externes pour la bague de mise au point. Les deux sont juste les classes de cacao standard non dérivées. Je me demandais s'il y avait autre chose que je devrais essayer. Il n'est certainement pas nécessaire de sous-classer NSCollectionView pour cela?

Merci
Chris

Répondre

2

anneaux de mise au point ne sont généralement pas la bonne façon de formuler des commentaires sur les destinations de glisser. Chaque vue le fait légèrement différemment. NSTextView montre la barre d'insertion. NSTableView affiche une ligne bleue entre les lignes pour les opérations de suppression Before, et montre un cadre autour de la ligne pour les opérations de suppression On. (Voir NSTableViewDropOperation)

NSCollectionView montre un « écart » entre les sous-vues existantes pour montrer où les éléments seront déposés pour Before opérations de chute, et il établira la propriété selected sur NSCollectionViewItem à YES pour On opérations de baisse. (Note: NSCollectionViewItem ne fait rien par défaut pour représenter visiblement la propriété selected Vous devez implémenter vous-même..)

Depuis les commentaires de NSCollectionView utilise uniquement des sous-vues existantes, il semble qu'il n'y ait pas de commentaires à tous pour vide NSCollectionView de . Vous auriez besoin de sous-classer pour fournir ce comportement vous-même. Vous pourriez aussi déposer un bogue pour demander à NSCollectionView de le faire lui-même.

+0

Nice, petite critique, merci! –