2016-12-29 2 views
1

Ich habe mich gefragt, warum mein Fenster sieht wie folgt aus: 2 linesWarum werden 2 Zeilen mit diesem Code gerendert (drawRect)?

Wenn ich die Größe des Fensters, hält eine Zeile Stretching, während die andere statisch dimensioniert und schräg hält.

As you can see, one of the lines keeps to the edges.

Der seltsame Teil ist, dass ich die Höhe und Breite des Fensters aufzunehmen, wenn drawRect aufgerufen wird.

Zu Beginn der Anwendung wird die drawRect-Methode viermal aufgerufen. strange

ich dies sah und erkannte, dass es nicht die tatsächliche Größe war, und zog ein wenig die Fenstergröße und bekam echte Ergebnisse. Was ist seltsam, ist es so schnell gesprungen.

enter image description here

Das seltsame Teil ist, wie der „Geist“ Linie ist immer noch da, ich keine Ahnung, welche man haben, ist der Geist! Warum? Ich änderte die Farbe der Linie, die angezeigt wird ... und:

enter image description here

Die eine, die die eine statisch angezeigt wird, ist die „erzeugt“ wird mein Code unter Verwendung jeder drawRect.

Der Code, den ich für meinen drawRect bin mit:

- (void)drawRect:(NSRect)dirtyRect 
{ 
    NSLog(@"%f, %f", dirtyRect.size.height, dirtyRect.size.width); 
    NSBezierPath *line = [NSBezierPath bezierPath]; 
    [line moveToPoint:NSMakePoint(NSMaxX([self bounds]), NSMaxY([self bounds]))]; 
    //Sorry about formatting; SO doesn't make it easy to format. 
    [line lineToPoint:NSMakePoint(NSMinX([self bounds]), NSMinY([self bounds]))]; 
    [line setLineWidth:_lwith]; /// Make it easy to see 
    [_lineColor set]; /// Make future drawing the color of lineColor. 

    [line stroke]; 
} 

ich für ein bisschen Erklärung bin zu fragen, oder einfach nur etwas, das hilft! Dank

Antwort

1

Selbst beantwortet

Was habe ich getan?: Ich hatte meine Unterklasse von NSView innerhalb eines anderen NSView im Storyboard; Das untergeordnete NSView wurde statisch auf einer bestimmten Größe gehalten, während das NSView (übergeordnetes Fenster) sich frei bewegte. Denken Sie daran, ich hatte meine Instanz des Kindes NSView in meinem ViewController gespeichert. Mein NSView zeigte eine Zeile, egal was, und es änderte nur die Farbe, wenn ich die Instanz selbst hatte.

Stellen Sie sicher, dass Ihr Storyboard alle überprüft, sieht Mine wie dies jetzt: enter image description here

Beachten Sie, wie ordentlich es ist nur ein „Graph“ Blick zu haben;)

Verwandte Themen