2011-02-10 6 views
3

사용자가 숫자 만 입력하도록하려는 텍스트 상자가 있습니다. 나는 거기에 숫자 키패드를 구현했다. 그러나 누군가 내 앱을 배경에두고 다른 앱에서 일부 문자열을 복사하여 내 앱으로 돌아와 붙여 넣으면 문자열 콘텐츠를 내 숫자 텍스트 필드에 붙여 넣습니다. 이 시나리오를 어떻게 제한 할 수 있습니까?숫자 텍스트 필드에 문자열의 복사본 붙여 넣기를 제한합니다.

당신은이 질문에 맨 대답에 따라 붙여 넣기를 모두 비활성화 할 수 있습니다

답변

6

@ theChrisKent는 가깝지만 약간 좋은 방법이 있습니다. 대리자 메서드 -textView:shouldChangeTextInRange:replacementText:을 사용하십시오. replacementText에 숫자가 포함되어 있지 않은지 확인하고, 그렇다면 NO을 반환하십시오.

+0

+1이 방법이 훨씬 더 좋습니다! – theChrisKent

0

: How disable Copy, Cut, Select, Select All in UITextView

는 그냥 UITextView를 서브 클래스 화해,이 방법 (위의 질문에서 도난 코드) 오버라이드 (override) : 당신을

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender 
{ 
    if (action == @selector(paste:) 
     return NO; 
    return [super canPerformAction:action withSender:sender]; 
} 

을 그렇지 않으면 UITextViewDelegate 프로토콜을 구현하고 textViewDidChange: 메서드를 구현하고 숫자인지 확인하십시오. 그렇지 않은 경우 변경 사항을 취소하십시오. 여기에 문서 : http://developer.apple.com/library/ios/documentation/uikit/reference/UITextViewDelegate_Protocol/Reference/UITextViewDelegate.html#//apple_ref/occ/intfm/UITextViewDelegate/textViewDidChange :

관련 문제