2011-09-07 7 views

답변

2

반환 키와 같은 동작 키가 아닌 한 특정 키를 사용하지 않도록 설정할 수는 없지만 UITextField를 사용하는 경우 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 대리자 메서드를 사용하여 사용자가 & 키를 빼고 문자열에서 제거하십시오.

1

그렇게 할 수 없습니다. 그러나 옵션은 다음과 같습니다

  • 을 사용하면 사용자가 제출 텍스트 유효성을 검사 할 수 있습니다 UITextField 사용하는 경우 키를 '&'을 offerring없는 자신 만의 키보드 (너무 많은 노력 IMO)
  • 를 만들 :/'&를'제거를 또는 사용자에게 '&'을 사용하는 것이 허용되지 않는다고 알립니다 (훨씬 쉽습니다).

편집 : 당신은 또한 파일의 소유자의 IBAction를로의 UITextField의 "편집 변경된"이벤트를 연결하고 거기에 & '를 필터링 할 수 있습니다.

+0

+1 답장을 보내 주셔서 감사합니다. :) – rptwsthi

1

내가 아는 한 UIKeyboard에서 특정 버튼을 직접 비활성화 할 수 없습니다. 나는 그런 일을 전혀하지 않았지만 새로운 버튼을 서브 뷰로 추가하여 키보드에 추가 할 수 있다는 것을 알고 있습니다. 그렇게하면 특정 버튼에서 userInteraction을 비활성화 할 수 있습니다.

링크는 키보드의 하위 뷰 같은 버튼을 추가하는 예를 보여줍니다

Creating a custom UIKeyBoard for iPhone

1

당신이 그들의 ASCII 값을 기준으로 할 경우 특정 문자를 차단할 수있는에 textField 하나 개의 위임 방법이 있습니다. 숫자와 & 기호를 허용합니다

-(BOOL)keyboardInput:(id)k shouldInsertText:(id)i isMarkedText:(int)b 
{ 
char s=[i characterAtIndex:0]; 
    if(selTextField.tag==1) 
    { 
     if(s>=48 && s<=57 && s == 38) // 48 to 57 are the numbers and 38 is the '&' symbol 
     { 
      return YES; 
     } 
     else 
     { 
      return NO; 
     } 

    } 
} 

이 방법은 사용자가 입력하는 다음과 같은 방법을 쓸 수 있습니다. 사용자가 다른 문자를 입력하더라도 입력되지 않습니다. TextField의 위임 메서드이기 때문에 명시 적으로 호출하는 것에 대해 걱정할 필요가 없습니다.

+0

+1 훌륭한 솔루션을 위해, 그것은 많은 사람들에게 도움이 될 것입니다. – rptwsthi

0
//Disabling the '<' '>' special characters key in Keyboard in my code 

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text 
{ 
    NSCharacterSet *nonNumberSet = [NSCharacterSet characterSetWithCharactersInString:@"<>"]; 
    if (range.length == 1) 
     return YES; 
    else 
     return ([text stringByTrimmingCharactersInSet:nonNumberSet].length > 0); 
    return YES; 
} 
+0

코드에서 '&'대신 '<'를 사용해보십시오. – balajiaj

관련 문제