如何在iOS 7中禁用表情符号键盘?

时间:2014-07-24 07:18:19

标签: ios emoji

我想以编程方式禁用表情符号键盘。请让我知道我该怎么做?

我尝试使用以下代码,

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

但没有运气...... :(

3 个答案:

答案 0 :(得分:7)

您只需将UITextField或UITextView的属性keyboardType设置为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 :(得分:1)

接受的答案很有效,但在iOS 7中不推荐使用currentInputMode。相反,您可以使用this SO thread中所述的textInputMode:

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

答案 2 :(得分:1)

虽然问题超级老, 我遇到了同样的问题,并且能够通过这个小技巧加载此页面时解决它:

  

只需在Interface Builder Xcode 8.2.1

中选择数字和标点符号

enter image description here

输出为无表情符号键盘= D

enter image description here

我相信它会帮助某人=)