Лучший способ изменить цвет фона для NSView

Вывод не учитывает тип возврата; вы можете, однако, попытаться разделить дженерики; например, вы могли бы написать код, чтобы разрешить:

.Cast().To<Type2>()

, имея (непроверенный, только указательный)

public static CastHelper<T> Cast<T>(this T obj) {
    return new CastHelper<T>(obj);
}
public struct CastHelper<TFrom> {
    private readonly TFrom obj;
    public CastHelper(TFrom obj) { this.obj = obj;}
    public TTo To<TTo>() {
       // your code here
    }
}
139
задан Leo Dabus 19 February 2016 в 01:21
поделиться

2 ответа

Да, ваш собственный ответ был правильным. Вы также можете использовать методы Какао:

- (void)drawRect:(NSRect)dirtyRect {
    // set any NSColor for filling, say white:
    [[NSColor whiteColor] setFill];
    NSRectFill(dirtyRect);
    [super drawRect:dirtyRect];
}

В Swift:

class MyView: NSView {

    override func draw(_ dirtyRect: NSRect) {
        super.draw(dirtyRect)

        // #1d161d
        NSColor(red: 0x1d/255, green: 0x16/255, blue: 0x1d/255, alpha: 1).setFill()
        dirtyRect.fill()
    }

}
131
ответ дан 23 November 2019 в 23:01
поделиться

Думаю, я понял, как это сделать:

- (void)drawRect:(NSRect)dirtyRect {
    // Fill in background Color
    CGContextRef context = (CGContextRef) [[NSGraphicsContext currentContext] graphicsPort];
    CGContextSetRGBFillColor(context, 0.227,0.251,0.337,0.8);
    CGContextFillRect(context, NSRectToCGRect(dirtyRect));
}
26
ответ дан 23 November 2019 в 23:01
поделиться