Redimensionner une fenêtre au click sur une ligne de TableView
Electrobitch
Membre
Bonsoir amis Macusers :]
Pour m'entraà®ner à Cocoa, j'aimerais développer une application qui permettrait de créer/éditer des fichiers .srt (sous-titres). Les sous-titres seraient présentés dans une NSTableView avec une colonne pour leur contenu (le sous-titre en lui-même), une pour le temps auquel il s'affiche (00:12:05:89 - h:min:s:ms) et une pour le temps auquel il disparaà®t (même format). Ce que je voudrais, c'est faire en sorte que quand l'utilisateur clique sur une ligne de la TableView, la fenêtre s'agrandisse en hauteur avec le style Préférences Système pour afficher divers TextFields permettant de modifier le sous-titre sélectionné. Malgré mes recherches Google, je n'ai rien trouvé (j'ai juste essayé l'article de ProjectOmega maissi vous connaissez autre chose...).
Merci d'avance de vos réponses.
PS: j'en profite pour demander : quelle méthode peut-on utiliser pour savoir si l'application est lancée pour la première fois ?
Pour m'entraà®ner à Cocoa, j'aimerais développer une application qui permettrait de créer/éditer des fichiers .srt (sous-titres). Les sous-titres seraient présentés dans une NSTableView avec une colonne pour leur contenu (le sous-titre en lui-même), une pour le temps auquel il s'affiche (00:12:05:89 - h:min:s:ms) et une pour le temps auquel il disparaà®t (même format). Ce que je voudrais, c'est faire en sorte que quand l'utilisateur clique sur une ligne de la TableView, la fenêtre s'agrandisse en hauteur avec le style Préférences Système pour afficher divers TextFields permettant de modifier le sous-titre sélectionné. Malgré mes recherches Google, je n'ai rien trouvé (j'ai juste essayé l'article de ProjectOmega maissi vous connaissez autre chose...).
Merci d'avance de vos réponses.
PS: j'en profite pour demander : quelle méthode peut-on utiliser pour savoir si l'application est lancée pour la première fois ?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Pour répondre au titre, il faut d'abord définir un delegate de la tableView, et que ce delegate implémente l'une des méthodes delegate de NSTableView (voir la doc de NSTableView pour cela). Citons :
Dans cette redéfinition de la méthode, il faut faire envoyer le message setFrame:display: ou setFrame:display:animate: à la [NSApp mainWindow]
Mets déjà cela au point, je présuppose que tu as déjà lu Hillegass ou autre pour peupler la table view via le mécanisme du NSTableDatasource.
Merci de ton aide en tous cas :]
Sinon, tu vas dans la doc de NSWindow. Tu trouves une delegate method du style windowWillResize: toSize: et une autre windowDidResize:
Tu déclares une de tes classes (le contrôleur de ton application sans doute) comme delegate de la mainWindow. Lors d'un resize de l'utilisateur, les deux méthodes ci-dessus sont appelées, et tu réagis comme tu l'entends.