코드로이 작업을 수행해야합니까, 아니면 내가 실종되었다고 인스펙터에 뭔가가 있습니까?iOS : 탭하면 UITextfield 강조 표시를 어떻게 만듭니 까?
3
A
답변
10
UIButton
과 달리 UITextField
에는 강조 표시된 상태가 없습니다. 당신이 포커스를받을 때 텍스트 필드의 색상을 변경하려면, 당신은 사용할 수있는 UITextFieldDelegate
의 - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
컨트롤이 처음 포커스를받을 때 호출됩니다. 거기에서 배경 및/또는 텍스트 색상을 변경할 수 있습니다. 포커스가 컨트롤을 벗어나면 - (BOOL)textFieldShouldEndEditing:(UITextField *)textField
을 사용하여 색상을 재설정 할 수 있습니다.
0
스위프트 2에서, 당신은
class CustomTextField: UITextField, UITextFieldDelegate{
init(){
super.init(frame: CGRectMake(0, 0, 0, 0))
self.delegate = self // SETTING DELEGATE TO SELF
}
func textFieldDidBeginEditing(textField: UITextField) {
textField.backgroundColor = UIColor.greenColor() // setting a highlight color
}
func textFieldDidEndEditing(textField: UITextField) {
textField.backgroundColor = UIColor.whiteColor() // setting a default color
}
}
0
당신은 아직도 당신의 ViewController에서 다른 대리인 기능을 사용할 수 있도록하려면, 아래와 같이 위임 기능을 사용할 수 있습니다, 당신이를 추가하는 것이 좋습니다 :
override weak var delegate: UITextFieldDelegate? {
didSet {
if delegate?.isKindOfClass(YourTextField) == false {
// Checks so YourTextField (self) doesn't set the textFieldDelegate when assigning self.delegate = self
textFieldDelegate = delegate
delegate = self
}
}
}
// This delegate will actually be your public delegate to the view controller which will be called in your overwritten functions
private weak var textFieldDelegate: UITextFieldDelegate?
class YourTextField: UITextField, UITextFieldDelegate {
init(){
super.init(frame: CGRectZero)
self.delegate = self
}
func textFieldDidBeginEditing(textField: UITextField) {
textField.backgroundColor = UIColor.blackColor()
textFieldDelegate?.textFieldDidBeginEditing?(textField)
}
func textFieldDidEndEditing(textField: UITextField) {
textField.backgroundColor = UIColor.whiteColor()
textFieldDelegate?.textFieldDidBeginEditing?(textField)
}
}
이렇게하면보기 컨트롤러가 대리자를 덮어 썼는지 알 필요가 없으며보기 컨트롤러에서 UITextFieldDelegate 함수를 구현할 수 있습니다.
let yourTextField = YourTextField()
yourTextField.delegate = self
관련 문제
- 1. iOS Contacts 앱과 유사한 UITableView를 어떻게 만듭니 까?
- 2. 다른 iOS 버전의 앱 아이콘은 어떻게 만듭니 까?
- 3. Word/OpenXML - 숨겨진 북마크는 어떻게 만듭니 까?
- 4. Perl 클래스는 어떻게 만듭니 까?
- 5. Catalyst에서 세션을 어떻게 만듭니 까?
- 6. 게임 바닥을 어떻게 만듭니 까?
- 7. 사전 항목은 어떻게 만듭니 까?
- 8. 이벤트 구독자는 어떻게 만듭니 까?
- 9. 컨테이너 파일은 어떻게 만듭니 까?
- 10. EDM에서 데이터베이스를 어떻게 만듭니 까?
- 11. 페이지 템플리트는 어떻게 만듭니 까?
- 12. 싱글턴 IEnumerable은 어떻게 만듭니 까?
- 13. 바이너리 패치는 어떻게 만듭니 까?
- 14. 모바일 사이트는 어떻게 만듭니 까?
- 15. 포인터의 배열은 어떻게 만듭니 까?
- 16. JSON Array는 어떻게 만듭니 까?
- 17. 빈 op_array는 어떻게 만듭니 까?
- 18. gitosis에서 머리를 어떻게 만듭니 까?
- 19. RSS 피드는 어떻게 만듭니 까?
- 20. 동적 URL은 어떻게 만듭니 까?
- 21. 소셜 그래프는 어떻게 만듭니 까?
- 22. CruiseControl.Net에서 속성을 어떻게 만듭니 까?
- 23. 제한된 AppDomain은 어떻게 만듭니 까?
- 24. UISplitView를 수동으로 어떻게 만듭니 까?
- 25. 런타임에 객체를 어떻게 만듭니 까?
- 26. 맞춤식 날짜는 어떻게 만듭니 까?
- 27. String에서 org.xml.sax.InputSource를 어떻게 만듭니 까?
- 28. Android에서 계기는 어떻게 만듭니 까?
- 29. Gtk Sharp에서 Syntax Highlight Text Editor는 어떻게 만듭니 까?
- 30. gedit에서 JavaScript 강조 표시를 어떻게 변경합니까?
고마워요! 위대한 작품 ... – TWcode
'textFieldShouldBeginEditing' 및'textFieldShouldEndEditing' 대신'textFieldDidBeginEditing' 및'textFieldDidEndEditing'을 사용해야합니까? OP는 textField가 편집 모드로 유지되어야하는지 여부를 수정/확인하지 않고 필드를 강조 표시하려고합니다. – Rao