Pro*_*ole 17 keyboard emoji ios5
我不想在我的应用程序中使用表情符号键盘,所以我只想在我的应用程序中禁用它.通过应用此链接的答案,有一种方法可以做到这一点:
但这不适用于iOS 5(iOS 4.3可以正常工作).有没有办法在iOS 5中禁用表情符号键盘.谢谢.
小智 37
您只需将keyboardTypeUITextField或UITextView 的属性设置为UIKeyboardTypeASCIICapable.这会禁用此UI元素的表情符号键盘.
Meg*_*hou 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;
}
Run Code Online (Sandbox Code Playgroud)
但有时,表情符号键盘可能无法输入表情符号.例如,当您键入"哈哈"时,它会在键盘的标题上显示表情符号.在这种情况下,上面的代码将不起作用.所以你应该做两次验证如下:
- (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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13180 次 |
| 最近记录: |