2016-12-29 7 views
1

мне было интересно, почему мое окно выглядит следующим образом: 2 linesПочему две строки отображаются с помощью этого кода (drawRect)?

При изменении размера окна, одна линия держит растяжку в то время как другая держит статически размер и перекос.

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

Странная часть, что я записываю высоту и ширину окна, когда drawRect называется.

В начале приложения метод drawRect вызывается 4 раза. strange

Я смотрел на это и понял, что это не фактический размер, и переехал размер окна немного и получил реальные результаты. Что странно, так это то, как он прыгал так быстро.

enter image description here

Странная часть как линия «призрак» по-прежнему есть, я понятия не имею, какой из них является призрак! Почему? Я изменил цвет линии, которая отображается ... и:

enter image description here

Тот, который статически отображается тот, который «генерируется», используя мой код каждый DrawRect.

код я использую для моего DrawRect:

- (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]; 
} 

Я прошу немного объяснений, или просто что-нибудь, что поможет! Благодаря

ответ

1

Само ответил

Что я сделал?: У меня был подкласс NSView внутри другого NSView в раскадровке; дочерний NSView был статически сохранен в определенном размере, а NSView (родитель/окно) свободно перемещался. Имейте в виду, что у меня был экземпляр дочернего NSView, сохраненный в моем ViewController. В моем NSView была строка, неважно, и она меняла только цвет, если у меня был экземпляр самого себя.

Убедитесь, что ваша раскадровка все проверил, мой выглядит, как это сейчас: enter image description here

Обратите внимание, как в чистом виде он должен иметь только один «граф» вид;)

 Смежные вопросы

  • Нет связанных вопросов^_^