[ios] UITextField 및 UITextView 커서 / 캐럿 색상 변경

난에서 커서의 색상 / 캐럿 변경에 대한 궁금하네요 UITextField(그리고 UITextView아이폰 OS에서 그 같은 대답 경우). OSX 개발에 대한 답변을 보았지만 iOS에 대해서는 아무것도 보지 못했습니다.

이것도 가능합니까?



답변

iOS 7 이상을 타겟팅하는 경우 훨씬 쉬워졌습니다. tintColor모양 프록시를 사용하여 커서로 필드의 필드를 변경 하면 앱 전체에 적용됩니다.

스위프트 3.0 :

UITextField.appearance().tintColor = .black 

목표 -C :

[[UITextField appearance] setTintColor:[UIColor blackColor]];

개인에게도 동일한 답변이 적용됩니다 UITextField.

스위프트 3.0 :

myTextField.tintColor = .black 

목표 -C

[myTextField setTintColor:[UIColor blackColor]];


답변

iOS7을 사용하면 텍스트 필드의 tintColor를 간단하게 변경할 수 있습니다


답변

스위프트 3 :

  UITextField.appearance().tintColor = UIColor.black
  UITextView.appearance().tintColor = UIColor.black


답변

참고 :이 답변은 최신 정보가 아니며 iOS 7 이전 개발에만 사용해야합니다. iOS 7에서 모양 프록시를 사용하는 한 줄 솔루션에 대한 다른 답변을 참조하십시오.

내가 작업중 인 프로젝트에서 동일한 문제에 직면 한 후이 질문에 도달했습니다.

기존 개인 API를 사용하지 않기 때문에 AppStore 검토 팀이 승인 할 솔루션을 만들었습니다.

UITextField를 확장하는 DGTextField라는 컨트롤을 만들었습니다.


답변

yourTextField.tintColor = [UIColor whiteColor];

코드에서 설정하면 작동합니다 .’cos 어떻게 든 색상 트리거가 Interface Builder (Xcode 6.1.1) 에서 작동하지 않습니다 . 외관 프록시를 변경할 필요없이 적합합니다.


답변

설정 tintColor을 위해 UITextFieldUITextView다르게 작동합니다. 대한 동안 UITextField당신이 업데이트 후 추가 코드를 호출 할 필요가 없습니다 tintColor에 대한 변경 커서 색상,하지만 UITextView당신은 필요가 없다.

그래서 설정 후 tintColor를 위해 UITextView(이 코드 IB 나에 중요하지 않습니다) 당신이 호출 할 필요 textView.tintColorDidChange()적용하기 위해 (실제로는 하위 뷰 계층 구조 아래로 텍스트 뷰의 설정을 전달합니다).


답변

이것은 신속하게 나를 위해 일했습니다.

UITextField.tintColor = UIColor.blackColor()

스토리 보드에서 이것을 설정할 수도 있습니다 : https://stackoverflow.com/a/18759577/3075340