2015-01-20 2 views
0

UITextField 나는 사용자가 텍스트 필드 안에있는 긴 부분 커서 이동 루페를 사용하여 보통 문자열을 편집하지 못하도록하고 싶습니다.UITextField 제스처 인식기 제거. Apple의 규칙 책에서 Legal은 어떤가?

내가 -(void)textFieldDidBeginEditing:(UITextField *)textField 방법

for (UIGestureRecognizer *recogZ in textField.gestureRecognizers) 
     { 
      [textField removeGestureRecognizer:recogZ]; 
     } 

또는 특정 원인,

for (UIGestureRecognizer *recogZ in textField.gestureRecognizers) 
     { 
      if ([NSStringFromClass(recogZ.class) isEqualToString:@"UIVariableDelayLoupeGesture"]) 
      { 
       [textField removeGestureRecognizer:recogZ]; 
      } 
     } 
UIVariableDelayLoupeGesture

으로가는 제스처 인식기를 제거하여 텍스트 필드에있는 모든 제스처 recognisers을 제거하여 일어나는 것을 방지하기 위해 노력하고 있어요

두 방법 모두 제대로 작동하지만 이러한 기술을 사용하는 것에 대한 의문점이 있습니다. 이것을 달성하는 다른 더 좋은 방법이 있습니까?

+0

커서를 뒤로 이동하지 않습니까, 아니면 표시되는 복사/붙여 넣기 옵션을 표시하고 싶지 않습니까? –

+0

setEditing = NO –

+0

@srinivasn 편집은 읽기 전용 속성입니다. –

답변

0

-(BOOL)shouldChangeTextInRange:(UITextRange *)range replacementText:(NSString *)text 

를 사용하지 않는 당신이 범위를 좋아하지 않는 경우 단지 (가 끝이 아니다) NO를 반환? 그렇게하면 불법 텍스트의 중간에 글쓰기/삭제하려고하는 사용자에게 경고 메시지가 나타날 수 있습니다.

+0

편집 루페를 사용하여 텍스트를 삽입 할 때 편집 루페를 사용하면 텍스트를 삽입 할 때 실패 할 수 있으므로 처음에는 루프의 목적을 무시하고 성가 시게됩니다. –

0

적어도 하나의 WWDC 비디오에서 저는 Apple UIScrollView 2013에 대해 믿습니다. Apple 엔지니어는 기본 UIScrollView 제스처 인식기를 교체하여 더 많은 것을 사용자 정의합니다. 나는 더 구체적 일 수 없다는 점에 유감이다. 그러나 기존의 제스처 인식기를 수정하는 데 Apple에서 문제가 있다고 생각하지 않습니다. 나 자신은 내 애플 리케이션에서 scrollView에 새로운 제스처를 추가했다. 그리고 그것은 문제가 아니므로 나는 당신의 이유를 알지 못한다.

물론 변경으로 인해 Apple 검토자가 혼란 스럽다면 버그 또는 잘못된 UX라고 생각하여 거부 할 수 있습니다.