NSView drucken mit Subviews

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

  • NSView drucken mit Subviews

    Hi,

    ich stehe leider wieder mal auf dem berühmten Schlauch.

    Ich habe ein NSView

    Quellcode

    1. NSView *view = [[NSView alloc] initWithFrame:NSMakeRect(10, 10, 300, 300)];
    2. [view setWantsLayer:YES];


    Dieses View bekommt jetzt ein Subview in Form eines NSTextfield

    Quellcode

    1. NSTextField *text;
    2. text = [[NSTextField alloc] initWithFrame:NSMakeRect(20, 20, 100, 20)];
    3. [text setStringValue:@"Subviewtext"];
    4. [text setBezeled:NO];
    5. [text setDrawsBackground:NO];
    6. [text setEditable:NO];
    7. [text setSelectable:NO];
    8. [view addSubview:text];


    Jetzt möchte ich das View drucken. Erstmal einfach:

    Quellcode

    1. [view print:self];


    Und dann mit ein paar Einstellungen:

    Quellcode

    1. NSPrintInfo *printInfo = [NSPrintInfo sharedPrintInfo];
    2. [printInfo setHorizontallyCentered:YES];
    3. [printInfo setVerticallyCentered:YES];
    4. [printInfo setRightMargin:0];
    5. [printInfo setLeftMargin:0];
    6. [printInfo setTopMargin:0];
    7. [printInfo setBottomMargin:0];
    8. [printInfo setHorizontalPagination:NSFitPagination];
    9. [printInfo setVerticalPagination:NSFitPagination];
    10. [view print:self];
    Alles anzeigen



    Jetzt zu meinem Problem, wenn ich das View drucke, hat das NSTextfield nicht mehr die Position wie ich es oben angegeben habe. Woran liegt es ? Er setzt das Textfield links unten auf das View.

    Vielen Dank für die Hilfe.
  • NeoNeT schrieb:

    habe jetzt eine DIN 4 Seite als View erstellt und oben den Textview. Wird auch so angezeigt wenn ich das NSView im NSWindow anzeigen lasse. Wenn ich es nun also PDF oder Druck speichere steht der Text Links unten auf der Seite.

    Du platzierst das Textfeld ja bei x=20 und y=20. Der Koordinatenursprung unter OS X ist unten links. Wundert mich jetzt also nicht, dass das Textfeid unten links erscheint. Ich habe hier mal vor ganz langer Zeit ein PrintDemo angehängt. Das läuft aber auch unter Mavericks noch (nur das Base SDK anpassen).

    Michael