Comportement inattendu de NSMatrix

berfisberfis Membre
juin 2013 modifié dans API AppKit #1

Bonjour,


 


J'ai une étrange réponse de NSMatrix dans le code suivant:



long hMove = < -1..+1 >;
long vMove = < -1..+1 >;
NSCell *position = [self.map selectedCell];
long theRow, theColumn;
[self.map getRow:&theRow column:&theColumn ofCell:position];
NSCell *destination = [self.map cellAtRow:theRow+vMove column:theColumn+hMove];

if (!destination) ...

D'après la doc:


 


Return Value

The NSCell object at the specified row and column location specified, or nil if either row or column is outside the bounds of the receiver.


Je devrais donc exécuter ce IF si je "sors" de la matrice. Mais cela ne fonctionne que vers le haut et la gauche. Si j'essaie de déplacer la sélection vers la droite ou vers le bas, j'obtiens... une cellule en bonne et due forme, alors que je devrais recevoir NIL.


Cette histoire de "outside the bounds" me ramène aux temps paranoà¯des de QuickDraw: le point en bas à  droite du rectangle est-il dans le rectangle ou en dehors?


Avons-nous affaire à  quelque chose du même genre ici ou... est-ce un bug de NSMatrix? Ou un des miens?


Réponses

  • bonjour,


     


    peut-être que quand tu sors de la sélection , il incrémente la colonne ?


     


    au pire utilise les méthodes numberOfRows et numberOfColumns


     


    pour faire toi mêmes tes tests de validités.

  • Oui, c'est ce que j'ai fini par faire... n'empêche c'est plutôt bof comme comportement non documenté...


     


    Merci en tout cas!


Connectez-vous ou Inscrivez-vous pour répondre.