스토리 보드에 두 개의 NSTextField
이 있고 두 클래스 모두 하위 클래스로 변경된 경우를 제외하고는 기본 구성에서 그대로 유지됩니다. 나는 내부를 서브 클래스 화했다 NSTextFieldCell
. 원하는대로 각각을 사용자 정의했습니다. 아주 간단한 서브 클래스입니다. 첫 번째 응답자 인 텍스트 필드는 예상대로 나타나지만 다른 텍스트 필드는 나타나지 않습니다. 그것의 셀에 흰색 배경을 그리는 중입니다. 두 필드 사이를 전환하면 배경이 토글됩니다. 흰색 배경을 셀에서 어떻게 제거 할 수 있습니까?NSTextFieldCell은 첫 번째 응답자가 아닌 경우에만 흰색 배경을 그립니다.
LoginTextField
:
- (void)baseInit {
self.drawsBackground = NO;
self.wantsLayer = YES;
self.backgroundColor = [[NSColor whiteColor] colorWithAlphaComponent:0.75];
self.textColor = [NSColor blackColor];
CALayer *layer = [[CALayer alloc] init];
layer.backgroundColor = self.backgroundColor.CGColor;
layer.borderWidth = 0;
layer.cornerRadius = 6;
self.layer = layer;
}
LoginTextFieldCell
:이 기능을 오버라이드 (override)하는 경우
- (void)baseInit {
self.drawsBackground = NO;
self.focusRingType = NSFocusRingTypeNone;
}
는 흰색 배경은 사라지지만 그렇게하지 않을 경우 첫 번째 자리 표시 자 텍스트 레이블을한다 응답자.
- (void)drawInteriorWithFrame:(NSRect)cellFrame inView:(NSView *)controlView {
return [super drawInteriorWithFrame:cellFrame inView:controlView];
}
나는, 엑스 코드 7에서 응용 프로그램을 개발 OS X 엘 캐피 탄에서 실행하고 있습니다. 이 문제를보고 사람들을위한