@mschluepmann, ma impostato UIKeyboardTypeASCIICapable non può cinese ingresso
E lo si può fare come qui di seguito
- (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;
}
Ma a volte, l'emoji può non accettata dalla tastiera emoji. Ad esempio, quando digiti "哈哈" mostra emoji sull'intestazione della tastiera. Nel caso, il codice sopra non avrà alcun effetto. Così si dovrebbe fare una convalida il doppio seguente:
- (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;
}
ha funzionato perfettamente – Yanchi
Questo disabiliterà lingue come l'arabo, l'ebraico, ecc, tuttavia . –
Grazie per queste informazioni utili –