2014-07-08 16 views
0

I는 사용자의 내 텍스트 필드를 클릭하고 함수 호출 할 때 캡처이 코드가 작동하지 않습니다UIControlEventTouchDown이있는 UIScrollView

-(void)viewDidLoad{ 
    [mytextfield addTarget:self 
        action:@selector(callvariant:) 
     forControlEvents:UIControlEventTouchDown]; 
    } 
-(void)callvariant:(UITextField *)textField{ 

     NovoProdutoMFViewController *mf = [[NovoProdutoMFViewController alloc] init]; 
     [self.navigationController pushViewController:mf animated:YES]; 

     [mf setBusca:textField.placeholder]; 

    } 

코드가 완벽하게 작동을하지만, 최근에있는 UIScrollView를 넣을 필요가 있었다 텍스트 필드에 사용자가 클릭이 함수를 호출하고 때로는 전화하지, 다른 시간에이 텍스트 필드에 2 초 이상 클릭 유지하는 것이 필요하다 때때로 이제

-(void)viewDidLoad{ 
     [mytextfield addTarget:self 
         action:@selector(callvariant:) 
      forControlEvents:UIControlEventTouchDown]; 

    scroll.contentSize = scroll.frame.size; 
    scroll.frame = self.view.frame; 

    [self.view addSubview:scroll]; 
     } 
-(void)callvariant:(UITextField *)textField{ 

      NovoProdutoMFViewController *mf = [[NovoProdutoMFViewController alloc] init]; 
      [self.navigationController pushViewController:mf animated:YES]; 

      [mf setBusca:textField.placeholder]; 

     } 

:이 코드 내 프로젝트 함수를 호출하고 때로는이 메소드가 일하지 마라.

무슨 일이 일어날 지 모르지만 어떻게 해결할 수 있습니까?

답변

0

사용자가 UITextField를 터치 한 이벤트를 잡으려면 위임 메서드를 사용하는 것이 좋습니다. 당신이 뭔가를하고 NO, 같은 결과를 얻을 수 반환하는 경우

UITextFieldDelegat는 방법을

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField;  // return NO to disallow editing. 

있습니다.