2009-11-16 2 views
5

NSTextField (Label)가 바인딩이있는 컨트롤러 선택기에 바인딩되어 있고 다중 값 표시기, 선택 표식기 등의 자리 표시 자 값을 지정한 경우에는 텍스트에 잘 표시되지 않는 회색 색상의 텍스트가 그려집니다. 어두운 배경.NSTextField의 자리 표시자를 표시 할 때 텍스트 색을 제어하는 ​​방법은 무엇입니까?

자리 표시 자 텍스트를 표시하는 데 사용하는 텍스트 색을 변경하는 방법이 있습니까?

답변

15

사용과 같은 원하는 색상을 지정하는 기인 문자열 :

다음
NSDictionary *blueDict = [NSDictionary dictionaryWithObject: [NSColor blueColor] 
         forKey: NSForegroundColorAttributeName]; 
NSAttributedString *blueString = [[[NSAttributedString alloc] initWithString: @"test" 
           attributes: blueDict] autorelease]; 

할 수 있습니다 직접 자리 표시 자 기인 캐릭터 설정 :

[[field cell] setPlaceholderAttributedString: blueString]; 

또는를 들어, 바인딩을 통해 그것을 할 예 :

[field2 bind: @"value" toObject: [NSUserDefaults standardUserDefaults] 
     withKeyPath: @"foo" 
     options: [NSDictionary dictionaryWithObject: blueString forKey: NSNullPlaceholderBindingOption]]; 
+0

자리 표시 자의 특성 문자열을 직접 설정하려고 시도했지만 직접 클릭하면 xt 필드가 있으면 자리 표시자가 사라지거나, 정상적으로 표시되거나 문자를 입력 할 때까지 자리 표시자를 유지할 수있는 방법이 있습니다. –

+0

OS X 버전에 따라 달라집니다 - 10.7에서 원하는 동작이 추가 된 것 같습니다. 이전 버전에서는 필드에서 키보드 포커스를받을 때 자리 표시 자 문자열이 사라졌습니다 ("코코아 용어로"키가됩니다). –

+1

10.8.3을 사용하고 있는데도 여전히이 문제가 있습니다. 자리 표시자는 텍스트 필드를 클릭하거나 프로그래밍 방식으로 첫 번째 응답자로 설정하면 사라집니다. –

0

당신은 자신의 "palceholder"를 만들려고 할 수 있습니다. 원하는 텍스트 패턴으로 텍스트 필드 위에 레이블을 표시 할 수 있습니다.

관련 문제