난에서 커서의 색상 / 캐럿 변경에 대한 궁금하네요 UITextField
(그리고 UITextView
아이폰 OS에서 그 같은 대답 경우). OSX 개발에 대한 답변을 보았지만 iOS에 대해서는 아무것도 보지 못했습니다.
이것도 가능합니까?
난에서 커서의 색상 / 캐럿 변경에 대한 궁금하네요 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]];
스위프트 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
을 위해 UITextField
와 UITextView
다르게 작동합니다. 대한 동안 UITextField
당신이 업데이트 후 추가 코드를 호출 할 필요가 없습니다 tintColor
에 대한 변경 커서 색상,하지만 UITextView
당신은 필요가 없다.
그래서 설정 후 tintColor
를 위해 UITextView
(이 코드 IB 나에 중요하지 않습니다) 당신이 호출 할 필요 textView.tintColorDidChange()
적용하기 위해 (실제로는 하위 뷰 계층 구조 아래로 텍스트 뷰의 설정을 전달합니다).
이것은 신속하게 나를 위해 일했습니다.
UITextField.tintColor = UIColor.blackColor()
스토리 보드에서 이것을 설정할 수도 있습니다 : https://stackoverflow.com/a/18759577/3075340
Instance member 'tintcolor' cannot be used on type 'UITextField'
보다 일반적인 접근 방식은 UIView의 모양을 tintColor로 설정하는 것입니다.
UIColor *myColor = [UIColor purpleColor];
[[UIView appearance] setTintColor:myColor];
많은 기본 UI 요소를 사용하는 경우 이치에 맞습니다.
[UIView appearance]
시도해보십시오.
[[self.textField valueForKey:@"textInputTraits"] setValue:[UIColor redColor] strong textforKey:@"insertionPointColor"];
개인 자산에 액세스해야만 가능하므로 Apple AppStore 앱이 거부 될 수 있습니다.
Durgesh의 접근 방식이 효과가 있습니다.
또한 이러한 KVC 솔루션을 여러 번 사용했습니다. 비록 문서화되지 않은 것처럼 보이지만 작동합니다. 솔직히, 당신은 어떤 개인적인 방법도 사용하지 않습니다-합법적 인 키-값 코딩 만.
추신 어제이 새로운 접근 방식으로 AppStore에 새로운 앱이 나타났습니다. 그리고 navigatonBar와 같은 일부 읽기 전용 속성이나 개인 ivar를 변경하는 데 KVC를 사용하는 경우는 처음이 아닙니다.
(가) 경우 UITextField
에서입니다 UISearchBar
후 먼저 얻을 textField
에서 searchBar
다음 적용 tintColor
속성을 :
let textFieldInsideSearchBar = searchBar.value(forKey: "searchField") as? UITextField
textFieldInsideSearchBar?.tintColor = UIColor.lightGray
나는 당신이 Assets.xcassets
폴더에 갈 수있는 사용자 정의 색상을 원한다면 마우스 오른쪽 버튼을 클릭하고을 선택하십시오 New Color Set
. 설정 한 색상을 만들면 재사용 할 이름을 지정하십시오.
그리고 당신은 이것을 다음과 같이 사용할 수 있습니다 :
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
UITextField.appearance().tintColor = UIColor(named: "YOUR-COLOR-NAME") #here
}
}
macOS 10.15 / iOS 13 / Swift 5에서 테스트
UITextField
에, 인터페이스 빌더에서이 작업을 수행하는 방법을 포함하여, stackoverflow.com/a/18759577/1709587