Commençons par le plus simple, la suppression d'une rangée unique que l'on vient de sélectionner par un clic, donc traitée par l'événement on clicked theObject.
Ensuite nous verrons le cas de suppression de plusieurs rangées à la fois, et le cas où la demande de suppression n'est pas faite dans on clicked theObject, ce qui implique de vérifier si une rangée est restée sélectionnée.
Une seule rangée permise en sélection
La case "Multiple Selection" n'est pas cochée dans Attributes
Tiger - Photo 2
Le code complet
Tiger - Photo 1
- Ligne 26 : Vérification que nous traitons la bonne table.
- Ligne 28 : j'ai choisi de supprimer la rangée que si la touche "option" est en enfonçée. La suppression n'étant pas le cas normal.
- Ligne 31 : Définition d'une variable authorTableView pointant sur la bonne table, de la bonne fenêtre.
- Ligne 33 : Récupération de l'adresse de la rangée sélectionnée.
- Ligne 36 : Vérification qu'une rangée a été sélectionnée.
- Ligne 37 : Suppression de la rangée sélectionnée.
Notez bien selectedDataRows est une liste, donc il faut indiquer "item 1" même si dans notre cas la sélection de multi-lignes n'est pas cochée.
Plusieurs rangées permises en sélection
La case "Multiple Selection" est cochée dans Attributes
Tiger - Photo 3
Ou, vous l'avez positionnée par l'instruction :
set allows multiple selection of theObject to true
Sélectionnez plusieurs rangées (shift ou Pomme key)
Tiger - Photo 5
Sélectionnez le menu
Tiger - Photo 6
Nous apprendrons plus tard dans le tutoriel comment créer les menus. C'est très simple dans Interface Builder.
Le résultat
Tiger - Photo 7
Notez, une rangée est sélectionnée en fin de suppression.
Le code
Tiger - Photo 8
- Ligne 54 : Evénement de sélection de menu.
- Ligne 57 : Choix du nom de menu.
- Ligne 59, 69, 72 : Une séquense avec traitement en cas d'erreur. L'erreur commune est de ne pas avoir sélectionné une ou des rangées à supprimer. J'ai choisi cette méthode pour vous donnez une variante des moyens possibles de détection de la non-sélection de rangées.
- Ligne 62 : Récupération des adresses des rangées à supprimer, soit, une liste à plusieurs éléments.
- Ligne 65 à 67 : Traitement dans une boucle pour chaque rangée à supprimer.
C’était finalement simple, une fois trouvé dans la documentation Apple, c'est-à-dire nulle part dans le référence manuel. Le seul endroit est dans l'exemple "Table". C'est un exemple de gestion de nom et adresse. Imprimez et lisez son code. C'est un bon exemple de début. Le projet "Table" est avec tous les exemples Apple de ASS dans /Developer/Examples/AppleScript Studio
La suite -
Inversion du tri d'une colonne