그리기 원인 I가 NSWindow
:유물
_window = [[NSWindow alloc] init];
[_window setOpaque:NO];
[_window setBackgroundColor:[NSColor clearColor]];
[_window setStyleMask:NSBorderlessWindowMask];
그리고 (계층없이) 내 사용자 정의보기보기의 내용으로이 : 내 사용자 정의보기 I의 drawRect:
에서
[_window setContentView:[[MyCustomView alloc] init]];
을 시스템 팝업처럼 보이고 색상으로 채우는 베 지어 경로를 만듭니다.
- (void)drawRect:(NSRect)dirtyRect
{
[NSGraphicsContext saveGraphicsState];
[super drawRect:self.bounds];
NSBezierPath *path = [self bodyShape];
[self.backgroundColor setFill];
[path fill];
[NSGraphicsContext restoreGraphicsState];
}
나는 팝 오버 장소 표시기를 이동시킬 때까지 모든
멋지다. 내 사용자 정의보기의 drawRect:
콘텐트 오른쪽 그립니다 동안 창에서 다시 그려진 후 유물을 나타납니다.
그리고 다음에 내용을 그릴 때이 흰색 삼각형 (위 그림 참조)은 창에서 같은 위치에 있고 창과 함께 이동합니다.
내보기 레이어에 추가하면 - 모두 정상적으로 보이지만 레이어를 추가 할 수 없습니다.
보기를 단색으로 채우면 아티팩트가 없습니다.
코코아가 첫 번째 비트 맵을 캐시하는 것이 좋습니다. 그러나 왜 이런 일이 일어나고 어떻게 해결할 지 확신 할 수 없습니다. 어쩌면 누군가가 그것을 고치는 이유를 아는가? 감사합니다. .