.

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Wenn es um eine Druckvorschau geht, könntest Du auch gleich ein PDF aus den Daten des TableViews erstellen.

    Schau Dir dazu mal den PDF Kit Programming Guide an.

    Alternativ kannst Du den Inhalt des TableViews auch in der drawRect: Methode des Custom Views zeichnen.

    Dazu würde sich u.a. Core Text oder das Cocoa Text System eignen. Für ein einfaches Text Layout, aus einem TableView, sollte das Cocoa Text System völlig ausreichend sein.
  • Wenn Du auch nur etwas mehr Kontrolle über die Druckausgabe haben möchtest, würde ich Dir dringend zum Selberzeichnen raten: Erstelle Dir eine View-Methode, die z. B. mit CoreGraphics eine Tabelle - ggfs. auch mehrseitig - erstellt oder gar als PDF zurückliefert. Diese kannst Du dann universal für Ausdrucke, Exporte etc. verwenden.

    Ich habe es inzwischen in diversen Programmen / Apps so gelöst und der anfängliche Mehraufwand hat sich immer rentiert.

    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.
  • RiCky17 schrieb:


    Alles ist besser als die Apple Doku :)
    Echt? Hast Du sie denn schon gelesen? Also hier ist m. E. recht gut beschrieben, mit welchen Methoden Du unter macOS einen mehrseitigen Druck erzeugen kannst. Einfacher ist es natürlich, wenn Deine Ausgabe immer genau eine Seite umfasst: Dann brauchst Du in der drawRect:-Methode nur den Focus zu locken und die Zeichen-Operationen z. B. via CoreGraphics durchführen. Am Ende der Methode ein unLockFocus und Du bist fertig.

    Ich würde die Zeichenoperationen zum Darstellen der View in einer separaten Methode kapseln, da diese dann - wie oben erwähnt - auch für PDF- / Image-Erstellung benutzt werden kann.

    Wie Deine View gezeichnet werden sollte, ist so individuell, dass Dir mein Code kaum hilft. Ausserdem ist er Objective-C und ich würde Dir vorschlagen, einfach einmal mit der Lektüre von 2D-Graphics anzufangen. Letztlich wirst Du zur Abbildung einer TableView ja fast ausschließlich Rechtecke / Linien Zeichnen und Texte platzieren müssen. Die Hauptschritte sind also:
    • aktuellen Kontext holen
    • Status sichern
    • Zeichenumgebung setzen (Farben und -räume, Strichtypen / -stärken, Transformationen des Koordinatensystems, ...)
    • Zeichnen
    • Status restoren
    Ciao, Mattes

    P.S.: Ich schimpfe ja auch häufig auf die (neuen) Klassendokumentationen von Apple, aber die verschiedenen Programming Guides finde ich noch immer gut - nicht durch die Objektive-C Program-Beispiele abschrecken lassen, es geht hier um das grundsätzliche Verständnis.
    Diese Seite bleibt aus technischen Gründen unbedruckt.
  • Da macOS vorwiegend in Objective-C entwickelt wurde, wirst Du aktuell viele Frameworks in Objective-C vorfinden. Da die Programming Guides vor der Veröffentlichung von Swift geschrieben wurden, beziehen sich diese natürlich auf die Objective-C API dieser Frameworks. In der Referenz Doku des jeweiligen Frameworks findet Du aber auch die Beschreibung für die Verwendung mit Swift. z.B. für PDFKit oder Core Text.

    Wenn man für ein Betriebssystem, in diesem Fall macOS, Software entwickelt, kann es sehr hilfreich sein, sich mit den verwendeten Technologien dieses Betriebssystems vertraut zu machen.

    Bei macOS ist z.B. Quartz für 2D Grafik verantwortlich. Quartz ist dabei auf PDF aufgebaut bzw. verwendet PDF als Basis für das Image Modell. In macOS kannst Du somit den selben Code in der drawRect: Methode verwenden, um auf den Bildschirm zu zeichnen oder einen Ausdruck bzw. ein PDF zu erstellen. Ok, bei PDF Kit geht es nur um PDFs, aber bei einer reinen Vorschau würde es sich ggf. anbieten, direkt ein PDF zu erstellen.

    Wenn es Dir wirklich zu schwer fällt, von den Programming Guides eines Frameworks auf die Verwendung mit Swift zu kommen, dann solltest Du mal nach entsprechenden Swift Tutorials suchen. Z.B. das Core Graphics on macOS Tutorial. Unter "Drawing Strings" gibt es z.B. eine Beschreibung zum Zeichnen von Text inkl. Swift Source Code. ;)

    Dieses Tutorial reißt das Thema Core Graphics zwar nur an, aber es sollte Dir einen ersten Überblick über die Möglichkeiten und Funktionsweise verschaffen.
  • MCDan schrieb:

    Wenn es Dir wirklich zu schwer fällt, von den Programming Guides eines Frameworks auf die Verwendung mit Swift zu kommen, dann solltest Du mal nach entsprechenden Swift Tutorials suchen. Z.B. das Core Graphics on macOS Tutorial. Unter "Drawing Strings" gibt es z.B. eine Beschreibung zum Zeichnen von Text inkl. Swift Source Code. ;)
    @MCDan's Hinweise hast Du auch gesehen?

    Es geht in den von mir verlinkten Programming Guides nicht darum, Code zu kopieren, sondern die Prinzipien dahinter zu verstehen ... und so schwer ist Objective-C nicht zu lesen, zumal die meisten Dinge ja Aspekte der Cocoa-Frameworks sind und nicht der Programmiersprache.

    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.
  • Also irgendwie hat Apple nur Mist gemacht. Seitdem Apple groß progpagiert: "Wenn du nur den Anschalter deines Mac findest kannst du programmieren" denken viele das ist mal schnell gemacht.

    Jeden Tag sind hier solche Threads. Das war doch füher nicht so. Da hat man sich auf den Hosenboden gesetzt und das probiert bis es ging.

    Und Objective C ist weiß Gott nicht so schwer zu lesen. Also lesen ist ja immer noch um Welten einfacher als selber schreiben.

    Die Erwartung hier von vielen ist: Ich bekomme den Mac angeschaltet kann gut die Gutenberg Methode (CMD + C; CMD + V) - so ich will mal programmieren. Verstehen will ich den Kram nicht einfach nur programmieren.

    Kann doch nicht sein. Wenn das so einfach wäre dann wären wir Programmierer arbeitslos und jeder Bauer könnte im Winter einfach zum Programmierer wechseln. (Nichts gegen Bauern aber ist so)

    Lange Rede kurzer Sinn: Wenn das was du machst Sinn ergeben soll. Dann lerne wenigstens Objective C zu lesen. Und nein das programmieren lernt man nicht von heut auf morgen. Das dauert Jahre und nicht jeder ist dafür geeignet.
  • AppleDeveloper schrieb:

    Also irgendwie hat Apple nur Mist gemacht. Seitdem Apple groß progpagiert: "Wenn du nur den Anschalter deines Mac findest kannst du programmieren" denken viele das ist mal schnell gemacht.
    ACK, das erinnert mich massiv an meinen Rant bzgl. "Lowlights der WWDC Keynote" vom letzten Jahr:

    "Jeder muss programmieren lernen" ist mindestens genauso schwachsinnig wie "jeder kann (mal eben) programmieren lernen". Wer es kann, weiß genau, wieviel Arbeit, Frust, Probieren und Scheitern dahinter steckt. Aber auch viel Spass, Erfolgserlebnisse, Reiz und - nicht zuletzt - häufig eine Passion.

    Programmieren wird häufig als Synonym für "Code schreiben können" gesehen, und wer eine Programmiersprache kann, kann angeblich programmieren. Diese Vereinfachung ignoriert komplett, dass man eine Systemplattform verstehen muss, um sinnvolle Programme schreiben zu können: Nicht nur die Berge an Frameworks, sondern z. B. Bedienkonzepte, File-System-Strukturen, Zugriffskonzepte, ... dazu dann noch Software-Konzepte wie MVC, Nebenläufigkeit, Modularisierung, nicht zu vergessen mindestens Basiswissen in Client-Server- und Netzwerk-Architektur, Verschlüsselung, Algorithmen und Datenstrukturen, ...

    Das Beherrschen von Sprachkonstrukten ist im Vergleich dazu eher trivial - auch wenn ich mich demnächst etwas treten muss, wohl doch mal in Swift zu schauen :D

    Long story short: Ja, ich finde wirklich, dass Apple hier eine falsche Erwartungshaltung schürt. Und leider können viele - unter anderem Politiker und andere Laien - diese nicht kritisch hinterfragen.

    Den Wandel hier im Forum nehme ich auch wahr. Allerdings glaube ich, dass genügend Anfänger bereit sind, die o. g. Lernkurve anzugehen und leiste hierzu gerne Hilfe zur Selbsthilfe. Und in den Fällen wo dies nicht der Fall scheint, werde ich eben stumm.

    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.