2014-01-25 3 views
0

Я использую https://github.com/kelan/yrk-spinning-progress-indicator, чтобы получить цветной прядильщик. Обратите внимание, что это не подкласс NSProgressIndicator, а пользовательский NSView.NSProgressIndicator - белые углы

Проблема в том, что углы этого пользовательского представления отображаются как белые, а не просто четкие фоны. Вы можете увидеть это в этом образе:

Screenshot.

Это код, у меня есть:

[_statusProgressIndicator setColor:[NSColor whiteColor]]; 
[_statusProgressIndicator setIndeterminate:YES]; 
[_statusProgressIndicator setBackgroundColor:[NSColor clearColor]]; 
[_statusProgressIndicator setDrawsBackground:YES]; 
[_statusProgressIndicator startAnimation:self]; 

Я также попытался:

[_statusProgressIndicator setDrawsBackground:NO]; 

Но он имеет тот же эффект.

Любые идеи о том, как исправить это?

ответ

0

Я загрузил код и пробежал образец, и нет закругленных углов, присутствующих в прядильщике, предоставленном исходным кодом.

Я заметил на вашем изображении, что ваш вид, содержащий прядильщик, также имеет закругленные углы? Используете ли вы слоистые представления с помощью метода setCornerRadius:?

Если это так, похоже, что в подвидере с прядильщиком также установлено это свойство, так как оно похоже на закругление, а ваш сложенный вид имеет закругленные углы того же размера.

Попробуйте установить угловой радиус поворотного устройства на 0?

+0

Привет, это интересно. Я использую MDBorderlessWindow (https://github.com/NSGod/BlackBorderlessWindow/) в качестве супервизора - он делает: NSBezierPath * path = [NSBezierPath bezierPathWithRoundedRect: frame xRadius: 6.0 yRadius: 6.0], но не намного больше. Счетчик: [NSBezierPath fillRect: [self bounds]]; - Что я должен изменить об этом? – Wesley

+0

В изменении кода MDBorderlessWindow: '[NSBezierPath bezierPathWithRoundedRect: рамка xRadius: 6.0 yRadius: 6.0]' к '[NSBezierPath bezierPathWithRoundedRect: self.frame xRadius: 6.0 yRadius: 6.0]' ' drawRect' рутина в этой функции действительно нужно называть входящий параметр 'rect' или' dirtyRect', а не 'frame'. Когда обновления ваших прядильщиков и базовое окно хотят обновить, они рисуют закругленные углы в грязном прямоугольнике, а не только в фактическом оконном кадре. –

+0

Кроме того, в моей системе (10.9.1), что черное окно без полей имеет белые углы, где они должны быть прозрачными, также окно не перемещается, щелкая и перетаскивая. –

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