在iOS的UITextView中没有显示笑脸(表情符号)?

时间:2012-10-02 13:20:17

标签: objective-c ios plist emoji

我已将所有uni-code(表情符号字符)存储在iphone支持的plist中。当我直接写作

- (IBAction)sendButtonSelected:(id)sender {
NSMutableArray *emoticonsArray = [[NSMutableArray alloc]initWithObjects:@"\ue415",nil];
NSString *imageNameToPass = [NSString stringWithFormat:@"%@",[emoticonsArray objectAtIndex:0]];
NSLog(@"imageNameToPass1...%@",imageNameToPass);
messageTextView.text =imageNameToPass;
 }

它在textview中显示表情符号,但是一旦我从plist

获取
NSString *plistPath1 = [[NSBundle mainBundle] pathForResource:@"unicodes" ofType:@"plist"];
NSDictionary *dictionary = [[NSDictionary alloc] initWithContentsOfFile:plistPath1];
activeArray= [dictionary objectForKey:categoryString];

NSLog(@"activeArray...%@",activeArray);

emoticonsArrayForHomeEmoji = [[NSMutableArray alloc]initWithCapacity:[activeArray count]];
for(int i=0; i<[activeArray count]; i++)
{
    id objects = (id)[activeArray objectAtIndex:i];
    [emoticonsArrayForHomeEmoji insertObject:objects atIndex:i];
}
NSString *imageNameToPass = [NSString stringWithFormat:@"%@",[emoticonsArrayForHomeEmoji 
objectAtIndex:0]];
NSLog(@"imageNameToPass1...%@",imageNameToPass);
messageTextView.text =imageNameToPass;

然后它在文本视图中将unicode显示为text \ ue415而不是表情符号。

我做错了什么?请帮帮我!

2 个答案:

答案 0 :(得分:2)

Wel说@AliSoftware,Plist数据将按原样读取,因此您可以按照以下步骤将表情符号添加到您的plist:

1)转到顶部栏,然后点击编辑。

2)现在选择特殊字符

3)现在将表情符号拖放到plist中。

有关详细信息,我正在添加快照。看一看。Step No. 1 Step No. 2 Step No. 3

答案 1 :(得分:1)

\uxxxx符号仅由编译器解释(因为源代码通常是ASCII或MacRoman或其他任何东西,但通常不是UTF8)

Plist文件直接使用这些字符,并以UTF8编码。 因此,您应该将表情符号字符本身直接插入到plist中,而不是使用\uxxxx表示法,因为Plist数据将按原样读取。

Lion and Mountain Lion Keyboard palettes contains emoji characters directly,因此在编辑PLIST时插入字符应该不难。