2011-12-29 2 views
16

내 그림에서 이모티콘 키보드 여백을 원하지 않으므로 내 응용 프로그램에서만 이모티콘을 비활성화하고 싶습니다.iOS 5 : 내 애플리케이션에서 이모티콘 키보드를 어떻게 비활성화 할 수 있습니까?

Making An Emoji Enabeling App

그러나에서 iOS 5에이 것 하지 일 (아이폰 OS 4.3 일을)이이 링크에서 해답을 적용하여 그것을 할 수있는 한 가지 방법이다. iOS 5에서 이모티콘 키보드를 사용 중지 할 수있는 방법이 있습니까? 감사합니다.

답변

37

UITextField 또는 UITextView의 keyboardType 속성을 UIKeyboardTypeASCIICapable으로 간단하게 설정할 수 있습니다. 이렇게하면이 UI 요소의 그림 이모티콘 키보드가 비활성화됩니다.

+0

이 – Yanchi

+8

완벽하게 작동이 등 아랍어, 히브리어, 같은 언어를 사용하지 않도록합니다 그러나 . –

+0

이 유용한 정보를 주셔서 감사합니다 –

17

@mschluepmann, 그러나 UIKeyboardTypeASCIICapable 입력 중국어

그리고 당신은하지만 가끔은, 이모티콘은 이모티콘 키보드로 입력 할 수 없습니다

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
{ 
    if (IS_OS_7_OR_LATER) { 
     if ([textField isFirstResponder]) { 
      if ([[[textField textInputMode] primaryLanguage] isEqualToString:@"emoji"] || ![[textField textInputMode] primaryLanguage]) { // In fact, in iOS7, '[[textField textInputMode] primaryLanguage]' is nil 
       return NO; 
      } 
     } 
    } else { 
     if ([[[UITextInputMode currentInputMode] primaryLanguage] isEqualToString:@"emoji"]) { 
      return NO; 
     } 
    } 

    return YES; 
} 

아래처럼 할 수 없습니다 설정합니다. 예를 들어 "哈哈"를 입력하면 키보드 헤더에 그림이 표시됩니다. 이 경우 위의 코드는 아무 효과가 없습니다. ,

Lapinou의 대답 @
- (BOOL)isValidString 
{ 
    NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"[^\\u0020-\\u007E\\u00A0-\\u00BE\\u2E80-\\uA4CF\\uF900-\\uFAFF\\uFE30-\\uFE4F\\uFF00-\\uFFEF\\u0080-\\u009F\\u2000-\\u201f\r\n]" options:NSRegularExpressionCaseInsensitive error:nil]; 

    NSUInteger numberOfMatches = [regex numberOfMatchesInString:self options:NSMatchingWithTransparentBounds range:NSMakeRange(0, [self length])]; 

    if (numberOfMatches > 0) { 
     return NO; 
    } 

    return YES; 
} 
+0

탁월한 해결책, 이것이 진정한 대답으로 표시되어야합니다. –

+0

isValidString 메서드가 올바르게 작동하지 않습니다. 또한 독일어 움라우트 (ä, ü, ö)와 같은 특수 문자를 차단합니다. ( – Maniac

+0

iOS 7 & iOS 8에서이 기능을 테스트했으며 Euro Symbol 및 프랑스어 악센트 부호가있는 문자를 방지합니다. 응용 프로그램 및 청중 –

0

나를 도와 GitHub의에있는 NSString의 자신의 범주를 재 게시 : 그래서 당신은 다음과 같은 두 번 확인을해야 NSString-RemoveEmoji

관련 문제