Ich habe diesen Code von dieser Seite in alten MacOS-Versionen verwendet, um ein Bild von einem NSView zu machen:
Alles anzeigen
Es hat immer gut funktioniert.
Nun, mit macOS High Sierra (10.13) ist das zurückgegebene Bild leer. Wie kann ich das Problem lösen?
Quellcode
- - (NSImage *)imageRepresentation
- {
- BOOL wasHidden = self.isHidden;
- CGFloat wantedLayer = self.wantsLayer;
- self.hidden = NO;
- self.wantsLayer = YES;
- NSImage *image = [[NSImage alloc] initWithSize:self.bounds.size];
- [image lockFocus];
- CGContextRef ctx = [NSGraphicsContext currentContext].graphicsPort;
- [self.layer renderInContext:ctx];
- [image unlockFocus];
- self.wantsLayer = wantedLayer;
- self.hidden = wasHidden;
- return image;
- }
Es hat immer gut funktioniert.
Nun, mit macOS High Sierra (10.13) ist das zurückgegebene Bild leer. Wie kann ich das Problem lösen?