Supprimer la sélection d'une NSTableView pour l'impression
berfis
Membre
Bonsoir,
J'ai une NSTableView que je souhaiterais imprimer, et que j'imprime en fait, mais la ligne sélectionnée apparaà®t en bleu à l'impression, comme sur l'écran.
Est-il possible de désactiver cette sélection, de manière qu'elle reste à l'écran mais qu'à l'impression ce ne soit pas le cas? Si oui, ou et comment?
Merci
Mots clés:
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
tu gardes en mémoire ta sélection
tu enleves la sélection de ta NSTableView
tu imprimes
tu remet ta sélection
devulder,
ça fonctionnerait sous système 6, quand on pouvait encore décider quand on effectuait les opérations. Ici la sélection s'efface, et revient le temps que le dialogue d'impression s'affiche. Résultat, j'imprime en bleu...
Avec ma méthode runOperationModalForWindow (, tu peux savoir quand l'impression est fini il me semble
Regarde ici http://genekc07.stowers.org/Users/mec/Library/Developer/Shared/Documentation/DocSets/com.apple.adc.documentation.AppleLion.CoreReference.docset/Contents/Resources/Documents/#documentation/Cocoa/Conceptual/Printing/Tasks/CreatingPrintJob.html
ça ne marche toujours pas.
Je désélectionne, puis comme la NSTableView adore se redessiner, je teste:
BOOL isPrinting = [NSPrintOperation currentOperation];
Tu as une solution alternative
voir http://themikeswan.wordpress.com/2010/08/05/expenses-part-5-printing-core-data/
Bonjour devulder,
Merci pour la traque sur Internet... Je n'avais jamais entendu parler de NSTextTable. Peu de gens, je pense.
NSTextTable : NSTextBlock : NSObject
-- On voit déjà déjà que côté filiation, ça ne ressemble à rien de connu. OK, va pour NSObject.
-- 3 références sous SO...Il ne faut pas s'attendre à des renforts de ce côté-là .
-- Aucune allusion au bidule dans Interface Builder... Pas de bindings graphiques, il faudra les coder en dur.
Au moins, le site que tu m'as donné en lien (un des rares gaillards à s'être frotté à cette classe) évoque le problème de l'impression avec NSTableView, faite pour l'affichage à l'écran et non pour l'impression.
Donc, en résumé, toujours pas de solution viable. Je n'ai pas envie de découvrir une nouvelle classe "qui pourtant est intéressante" dans le but de régler quelque chose qui, encore une fois, paraissait trivial mais ne l'est pas.
Vous savez quoi? Je vais bêtement renoncer à sélectionner ma ligne, et basta. Comme le dit si bien Céroce:
Quand la spec est trop dure à implémenter, changez la spec.
Pour revenir à la question, il y a une raison pour laquelle on imprime rarement une tableview: le rendu est dégueu !
Certes, c'est un peu de travail, mais il n'est pas très compliqué de créer une sous-classe de NSView qui affiche quelques lignes. L'avantage est que tu contrôleras totalement l'affichage (notamment la fonte) et la mise en page.
Il faut rendre à César...
Je suis d'accord, le rendu n'est pas terrible (bon, ça reste du pdf) mais pour l'emploi que j'en ai, c'est suffisant: je veux juste que les collègues aient une page A4 avec un tableau de noms... et si tu voyais ce que certains font avec l'abominable Excel ou son avatar open source , je ne m'en sors pas trop mal.
Si la demande est forte et que des crédits sont accordés, on avisera pour le super-machin avec enregistrement sur iCloud et lecteur iOS ??? je deviens vénal...
Je me bats encore avec cette fichue NSTableView qui m'a appris deux choses supplémentaires (à part son rendu dégueu):
1. le filtrage par prédicat avec block, le tout c'est de s'y mettre, après c'est vraiment chouette;
2. le test IF est un indice (ok, pas une preuve) d'une programmation hésitante et a remplacé dans la liste de mes ennemis l'antique et honni GOTO.