2014-07-16 3 views
0

UIScrollView 내에 UIControl이 있습니다. scrollview에는 텍스트 필드가 있습니다. UIControl을 건 드리면 텍스트 필드에 초점이 맞춰지기를 원합니다. iOS : UIScrollView의 UIControl에서 클릭 이벤트가 등록되지 않았습니다.

은 UIControl가에 매여있는 방법입니다 :

- (IBAction) clickedBackground 
{ 
    [self.view endEditing:YES]; //make the view end editing! 

} 

단, UIControl은 만졌을 때이 이벤트를 호출하지 않는 것 같습니다. 나는 다른 곳에서 제안이 시도했지만 아무 소용이 : 당신의 UIControl에

[scroller setDelaysContentTouches:YES]; 
+0

은 컨트롤을 만들고 이벤트를 바인딩하는 코드를 보여줍니다. – Apurv

+0

인터페이스 빌더를 사용하여 컨트롤을 만들었습니다. 컨트롤을 드래그하여 바인딩합니다. – Zaxter

+0

사용자 정의 제스처 인식기를 스크롤보기로 사용합니까? – tgyhlsb

답변

2

터치 이벤트가 당신의있는 UIScrollView의 터치 이벤트와 갈등지고 있습니다.

텍스트 필드의 포커스가 느슨하면 버튼을 누르는 것만으로도 사용할 수 있습니다.

[textField resignFirstResponder]; 

그러나 텍스트 필드 외부에서 사용자가 아무 때나 탭하면 포커스를 잃는 것이 이상적입니다. This answer이 작업을 수행하는 데 도움이됩니다.

그러나 키보드를 사그라 원한다면. 그런 다음 버튼 탭에서 resignFirstResponder을 사용하십시오. UITextField 입력 액세서리보기을보고 사용자가 탭할 수있는 키보드 입력보기에 버튼을 표시 할 수도 있습니다.

+0

고마워요! "scrollView.keyboardDismissMode = UIScrollViewKeyboardDismissModeOnDrag;"를 사용하여 종료했습니다. 당신이 제공 한 링크에서. – Zaxter

관련 문제