2014-07-24 89 views
4

我想以編程方式禁用表情符號鍵盤。請讓我知道我該怎麼做?如何禁用iOS 7中的表情符號鍵盤?

我試着用下面的代碼,

NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithContentsOfFile:@"/private/var/mobile/Library/Preferences/com.apple.Preferences.plist"]; 
[dict setObject:[NSNumber numberWithBool:NO] forKey:@"KeyboardEmojiEverywhere"]; 

,但沒有運氣... :(

回答

4

您可以簡單地設置的UITextField或UITextView的以UIKeyboardTypeASCIICapable的財產鍵盤類型,這將禁用表情符號鍵盤爲這可能不是在中國工作,此UI元素

我們怎麼過有一個解決方法太:

- (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; 
} 

用戶將無法鍵入任何表情符號圖標。

+1

如果我們使用UIKeyboardTypeASCIICapable,多語言支持不可能:(。我想支持多種語言,但應禁用表情符號。 – Bhat

+0

currentInputMode在ios 7中被取消。 –

1

接受的答案做工不錯,但是currentInputMode被棄用的iOS 7相反,你可以在this SO thread使用textInputMode如說:

+(BOOL)isEmojiInput:(UITextView)aTextView 
{ 
    return [aTextView textInputMode] == nil; 
} 
1

雖然問題是超級老, 我面臨同樣的問題,能夠通過時間來解決它此頁面通過這個小把戲裝:

只需選擇數字和標點符號在Interface Builder 8.2.1的Xcode

enter image description here

輸出是沒有表情符號鍵盤= d

enter image description here

我敢肯定它會幫助別人=)