Ios5 iOS 5:如何在应用程序中禁用表情键盘?
我不想在我的应用程序中使用表情符号键盘,所以我只想在我的应用程序中禁用它。有一种方法可以通过应用此链接中的答案来实现:Ios5 iOS 5:如何在应用程序中禁用表情键盘?,ios5,keyboard,emoji,Ios5,Keyboard,Emoji,我不想在我的应用程序中使用表情符号键盘,所以我只想在我的应用程序中禁用它。有一种方法可以通过应用此链接中的答案来实现: 但这在iOS 5上不起作用(iOS 4.3确实起作用)。有没有办法在iOS 5中禁用表情键盘。谢谢。您只需将UITextField或UITextView的属性keyboardType设置为UIKeyboardTypesCapable。这将禁用此UI元素的表情键盘。@mschluepmann,但set-UIKeyboardTypesCapable无法输入中文 你可以像下面这样做
但这在iOS 5上不起作用(iOS 4.3确实起作用)。有没有办法在iOS 5中禁用表情键盘。谢谢。您只需将UITextField或UITextView的属性
keyboardType
设置为UIKeyboardTypesCapable
。这将禁用此UI元素的表情键盘。@mschluepmann,但set-UIKeyboardTypesCapable无法输入中文
你可以像下面这样做
- (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的回答帮助了我,在github上重新发布了他的NSString类别:这将禁用阿拉伯语、希伯来语等语言。但是,这不会阻止用户在其中复制粘贴表情。如果文本字段用于电子邮件,并且必须选择键盘类型作为-E-mail地址,该怎么办?很好的解决方案,应该标记为回答正确。isValidString方法不能正确工作。它还阻止特殊字符,如德语umlauts(ä,ü,ö)等…:(我在iOS 7和iOS 8上对此进行了测试,它可以防止使用欧元符号和法语字符。这是我的应用程序和用户的主要障碍。我也遇到了同样的问题。我已经从键盘上禁用了表情符号,但我看到一些用户确实从另一个应用程序(例如:Mail)复制了过去的表情符号。).为了防止复制过去,我在Github上发现了NSSString的一个很好的扩展:希望对您有所帮助;)虽然基于当前键盘的
primaryLanguage
阻止输入是一个快速的解决方案,但它可能会导致一些混乱,因为在执行此检查且表情键盘是第一响应者时,无法向文本字段添加任何内容。例如,粘贴[valid]当表情符号键盘打开时,文本将不起作用。一个更好的解决方案是@Lapinou发布链接的类别,因为它直接检查表情符号的unicode值。