2012-06-02 49 views
3

我試圖在UITextField與現有text.But添加表情符號,我得到只有在文本框的Unicode到位像\ue415表情符號。我已經嘗試下面的代碼在文本框中設置表情符號。顯示繪文字中的UITextField

我有一個視圖,其中有按鈕與emojis的圖像。在那個表情符號的點擊上,我將這個表情符號的相應unicode添加到文本中。但在該unicode附加字符串格式,而不是實際的符號。

如果我嘗試在文本字段中設置直接unicode,那麼它會顯示錶情符號,但如果我嘗試從數組中獲取值,則不顯示錶情符號。

NSString *strCode = [[arrPlist objectAtIndex:[sender tag]]objectForKey:@"UTFCode"]; 
strCode = [strCode stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; 

NSString *mycode = @"\ue415"; 
if ([mycode isEqualToString:strCode]) 
{ 
    NSLog(@"both are same"); 
} 
NSLog(@"%@",[NSString stringWithFormat:@"strCode:%@ and mycode:%@",strCode,mycode]); 
messageField.text = [messageField.text stringByAppendingFormat:@"%@ %@",strCode,mycode]; 

,輸出是這樣的:

strCode:\ ue415和mycode的:

誰能幫我我怎樣才能得到strCode一樣mycode的?

+0

我認爲emoji圖標不會顯示在控制檯窗口中。 – TheTiger

+0

http://stackoverflow.com/questions/11365450/nsstring-with-unicode-issue-from-web-service?rq=1 去這個鏈接,這是你的答案.. !!! – NiravPatel

回答

2
Use like below it will work 

NSString *myString = @"I am sad of him"; 
myString = [myString stringByReplacingOccurrencesOfString:@"sad" withString:@"\ue415"]; 
txtField.text = myString; 
+0

感謝您的回覆。 但實際上我有一個視圖,其中有按鈕與emojis的圖像。 點擊這個表情符號我將這個表情符號的相應Unicode添加到文本中。但在該unicode附加字符串格式,而不是實際的符號。 –

0

有趣的問題。

您不能將\字符作爲字符串。在你的代碼中,'mycode'將@「\ ue415」作爲一個字符而不是字符串。你可以用

NSlog(@"%d",[mycode length]); 

看到它...它會告訴你1,而不是6

,如果你可以在設置 - 如何在你的代碼

NSString *mycode = [[NSString stringWithFormat:@"\\"]stringByAppendingFormat:@"ue415"]); 

任何....這會給你你想要的字符串。

謝謝!

+0

感謝Reply.Ectually我只得到長度6,但現在我得到了解決方案。 我正在從plist文件中獲取數組,因此我沒有得到字符串而不是unicode。 所以,我提出統一碼的陣列,並且得到了這樣的: 'arrEmojis = [[NSArray中的alloc] initWithObjects:@ 「\ ue415」,@ 「\ ue056」,@ 「\ ue057」,@「\ ue414 」 @ 「\ ue405」,@ 「\ ue106」,@ 「\ ue418」,@ 「\ ue417」,@ 「\ ue40d」,@ 「\ ue40a」,@ 「\ ue404」,@ 「\ ue105」零]; NSString * strCode = [arrEmojis objectAtIndex:[sender tag]]; messageField.text = [messageField.text stringByAppendingFormat:@「%@」,strCode];' –

+0

Ok .... Congrats Mansi :-) – TheTiger