3

タミル語キーボードに似せたい

機能: A ボタンを押すと அ を表示し、AA を押すと ஆ を表示します。

これは私がこれまでに試したことです。

NSMutableString *updatedText = [[NSMutableString alloc] initWithString:textView.text];
[updatedText insertString:text atIndex:range.location];
NSLog(@"%i",range.location);
NSRange replaceRange = range , endRange = range;

if (text.length > 0) 
{
    NSLog(@" text length %i",text.length);

    replaceRange.length= text.length;
} 
else 
{
    replaceRange.length = 2;  // length of "hi" is two characters
    replaceRange.location -= 1; // look back one characters (length of "hi" minus one)
}

   int replaceCount = [updatedText replaceOccurrencesOfString:@"a" withString:@" அ" options:NSCaseInsensitiveSearch range:replaceRange];

   //   replaceCount = [updatedText replaceOccurrencesOfString:@"aa" withString:@" ஆ" options:NSCaseInsensitiveSearch range:replaceRange];

if (replaceCount >=1) {
    // update the textView's text
    textView.text = updatedText;

   // leave cursor at end of inserted text
    endRange.location = text.length+ replaceCount*100000000; // length diff of "hello" and "hi" is 3 characters
//  endRange.location;
    NSRange h= endRange;

   textView.selectedRange= h; 

    [updatedText release];
    return NO;
}    
[updatedText release];

return YES;     
}

この方法を使用すると、1 文字だけが読み取られ、その文字がスペースに置き換えられます。

4

1 に答える 1

1

"a" を "அ" に、"aa" を "ஆ" にすべて置き換えたい場合は、次のようにします。 "aa" の最初のテスト

//this will repleace all of "aa"
int replaceCount = [updatedText replaceOccurrencesOfString:@"aa" withString:@"ஆ" options:NSCaseInsensitiveSearch range:[NSMakeRange(0, updatedText.length)];

//this will repleace all of "a"
int replaceCount = [updatedText replaceOccurrencesOfString:@"a" withString:@"அ" options:NSCaseInsensitiveSearch range:[NSMakeRange(0, updatedText.length)];
于 2012-06-11T13:04:25.763 に答える