UITextView를 사용하고 UITextViewDelegate를 View Controller에 연결했습니다. 사용자가 TextView를 클릭하면 텍스트보기 위에 텍스트가있는 지 여부에 따라 숨기거나 숨기기를 원하는 "자리 표시 자"레이블이 나타납니다. 그러나 UITextViewDelegate textViewDidBeginEditing 및 textViewDidEndEditing 메서드에서 UI 작업을 실행하는 데 문제가있는 것 같습니다. 단위 테스트에서 모든 것이 잘 실행되지만 앱을 실행할 때 UI가 업데이트되지 않습니다. 나는 심지어 UI 스레드를 강제로 dispatch_async 블록에서 UI를 래핑하는 시도했지만 느리고 변덕스럽게 보인다 (때로는 작동하지 않는 경우도있다). 다른 사람이 이것을 본 적이 있습니까? 나 앞에서 노골적으로 옳은 것을 놓치고 있니?iOS 8 UITextViewDelegate 및 UI 업데이트
public func textViewDidBeginEditing(textView: UITextView) {
switch(textView) {
case self.descriptionTextView:
self.activeTextView = self.descriptionTextView
break
case self.detailTextView:
self.activeTextView = self.detailTextView
dispatch_async(dispatch_get_main_queue(), {() -> Void in
self.detailsRequiredButton!.hidden = true
})
break
default:
break
}
}
텍스트 뷰어 내에 자리 표시 자 텍스트를 만드는 방법에 대한 답변을 확인하십시오. http://stackoverflow.com/questions/27652227/text-view-placeholder-swift – rakeshbs
사실 그것이 내가 취한 첫 번째 접근 방식 (또는 적어도 그 파생)입니다. textFieldDidBeginEditing 및 textFieldDidEndEditing 중에 나타나는 일관성없는 호출은 동일한 문제를 발생시킵니다. 따라서 여기에있는 것처럼 버튼을 숨기지 않고 호출이 UI에 제대로 반영되지 않았기 때문에 자리 표시 자 텍스트가 지워지지 않습니다. – JamWils