2012-06-11 2 views
3

Я хочу подобную клавиатуру Тамилкак добавить свой язык в UITextView тексте

Функции: при нажатии кнопки А, я хочу показать அ и когда я нажимаю АА, я хочу показать ஆ.

Это то, что я пробовал до сих пор.

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

Если вы хотите заменить все «а» до «அ» и «аа» в «ஆ» Выполните следующие действия Первый тест на «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)]; 
+0

благодаря очень это хорошо работает. .. ur soo great .... но у меня есть другая проблема, когда я нажимаю кнопку на дисплее «அ», но когда я нажимаю aa, она не отображает «ஆ» .it показывает «அஅ», так что делать. – dhaya

+0

добавьте строки в том же порядке, я написал их сначала, заменив @ «aa», затем «a», также, пожалуйста, не забывайте повышать или/или принимать ответ, если это было полезно :) –

+0

Я использую как ... я не получаю answer int replaceCount = [updatedText replaceOccurrencesOfString: @ "aa" withString: @ "ஆ" options: NSCaseInsensitiveSearch range: NSMakeRange (0, updatedText.length)] || [updatedText replaceOccurrencesOfString: @ "a" withString: @ "அ" options: Область NSCaseInsensitiveSearch: NSMakeRange (0, updatedText)]; – dhaya