在UITextField中显示表情符号

时间:2012-06-02 06:34:06

标签: iphone objective-c ios uitextfield emoji

我正在尝试使用现有文本在UITextField中添加表情符号。但是我只在文本字段中使用unicode代替\ue415之类的表情符号。我尝试使用以下代码在文本字段中设置表情符号。

我有一个视图,其中有按钮与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相同?

2 个答案:

答案 0 :(得分:2)

Use like below it will work  

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

答案 1 :(得分:0)

有趣的问题。

你不能把\字符作为字符串。在你的代码中'mycode'将@“\ ue415”作为一个字符而不是字符串。你可以用

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

...它会显示1而不是6。

如果你可以设置 -

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

你的代码中的任何内容......这将为你提供你想要的字符串。

谢谢!!