UITextField 및 UITextView 커서/캐럿 색상 변경
을 서/캐/캐로 .UITextField
(그리)UITextView
iOS를 사용하다OSX 개발에 대한 해답은 봤지만 iOS에 대한 해답은 없습니다.
이게 가능하기나 해?
iOS 7+를 타겟으로 하고 있는 경우는, 한층 더 간단하게 할 수 있습니다. '만나면 돼요.tintColor
커서가 있는 필드의 경우 앱 전체에 적용됩니다.
Swift 3.0:
UITextField.appearance().tintColor = .black
목표-C:
[[UITextField appearance] setTintColor:[UIColor blackColor]];
됩니다.UITextField
:
Swift 3.0:
myTextField.tintColor = .black
목표-C
[myTextField setTintColor:[UIColor blackColor]];
iOS7에서는 텍스트 필드의 tintColor를 간단하게 변경할 수 있습니다.
스위프트 3:
UITextField.appearance().tintColor = UIColor.black
UITextView.appearance().tintColor = UIColor.black
yourTextField.tintColor = [UIColor whiteColor];
코드로 설정하면 동작합니다.왜냐하면, Interface Builder(Xcode 6.1.1)에서는, 칼라 트리거가 동작하지 않기 때문입니다.어피아란스 프록시를 변경할 필요 없이 잘 어울렸습니다.
주의: 이 답변은 최신이 아니므로 iOS 7 이전 개발에만 사용해야 합니다.iOS 7의 외관 프록시를 사용한 한 줄짜리 솔루션에 대한 다른 답변을 참조하십시오.
제가 이 질문을 하게 된 것은 제가 진행하던 프로젝트에서 같은 문제에 직면했기 때문입니다.
AppStore 리뷰팀은 기존 Private API를 사용하지 않기 때문에 수용 가능한 솔루션을 만들 수 있었습니다.
UITextField를 확장하는 DGTextField라는 컨트롤을 만들었습니다.
★★tintColor
★★★★★★에UITextField
★★★★★★★★★★★★★★★★★」UITextView
하다★★★★★★★★★★★★★★★의 경우UITextField
후 를 호출하지 됩니다.tintColor
색을 UITextView
필요하죠.
★★★을 한 후tintColor
★★★★★★에UITextView
코드에 (IB)로.textView.tintColorDidChange()
(실제로 텍스트뷰의 설정을 서브뷰 계층에 전달합니다)
이것은 나에게 빠르게 작용했다.
UITextField.tintColor = UIColor.blackColor()
스토리보드에서도 설정할 수 있습니다.https://stackoverflow.com/a/18759577/3075340
보다 일반적인 접근법은 UIView의 어피아란스의 tintColor를 설정하는 것입니다.
UIColor *myColor = [UIColor purpleColor];
[[UIView appearance] setTintColor:myColor];
기본 UI 요소를 많이 사용하는 경우 유용합니다.
해봐, 나한테는 효과가 있어.
[[self.textField valueForKey:@"textInputTraits"] setValue:[UIColor redColor] strong textforKey:@"insertionPointColor"];
개인 자산에 액세스해야만 가능하므로 Apple AppStore 앱 거부가 발생할 수 있습니다.
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★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에서 테스트 완료
Durgesh의 접근법은 효과가 있다.
저도 그런 KVC 솔루션을 여러 번 사용했습니다.문서화되어 있지 않은 것 같지만, 효과가 있습니다.솔직히 여기서는 개인 방법을 사용하지 않습니다. 합법적인 키-값 코딩만 사용합니다.
추신: 어제 앱스토어에 새로운 앱이 등장했습니다.KVC를 사용하여 일부 읽기 전용 속성(navigatonBar 등)이나 개인 ivar를 변경하는 것은 이번이 처음은 아닙니다.
Swift를 사용하는 Interface Builder 버전의 경우
@IBOutlet weak var tvValue: UITextView! {
didSet {
tvValue.tintColor = .black
}
}
이 경우,UITextField
에서 왔다UISearchBar
그럼 일단은textField
부터searchBar
그리고 나서 신청합니다.tintColor
속성:
let textFieldInsideSearchBar = searchBar.value(forKey: "searchField") as? UITextField
textFieldInsideSearchBar?.tintColor = UIColor.lightGray
스위프트 4
viewDidLoad()에서는 아래 코드를 호출합니다.
코드 샘플
//txtVComplaint is a textView
txtVComplaint.tintColor = UIColor.white
txtVComplaint.tintColorDidChange()
Swift에서 동등한 것을 검색하시는 분들을 위해UI:Textfield
이것은accentColor
:
TextField("Label", text: $self.textToBind).accentColor(Color.red)
언급URL : https://stackoverflow.com/questions/11606007/change-uitextfield-and-uitextview-cursor-caret-color
'programing' 카테고리의 다른 글
PowerShell에서 "이 시스템에서 스크립트 실행이 비활성화되었습니다."라고 표시됩니다. (0) | 2023.04.21 |
---|---|
Excel의 CSV 소수점 (0) | 2023.04.16 |
.format(또는 f-string)을 사용하는 동안 문자열 내에서 컬리브레이스({}) 문자를 이스케이프하려면 어떻게 해야 합니까? (0) | 2023.04.16 |
'git diff'가 호출기를 사용하지 않도록 하려면 어떻게 해야 합니까? (0) | 2023.04.16 |
Mercurial과 Git의 차이점은 무엇입니까? (0) | 2023.04.16 |