我正在使用iOS 8自定义键盘,在该键盘上我已使用一些图像(如笑脸)设计了键盘。我希望此键盘可以与iMessage一起使用。当我尝试发送文本时,它可以正常工作,但无法在那里共享图像。我尝试了以下代码:
要共享文本,请执行以下操作:
-(void)shouldAddCharector:(NSString*)Charector{
if ([Charector isEqualToString:@"Clear"]) {
[self.textDocumentProxy deleteBackward];
} else if([Charector isEqualToString:@"Dismiss"]){
[self dismissKeyboard];
} else {
[self.textDocumentProxy insertText:Charector];
}
}
添加图像:(不起作用)
-(void)shouldAddImage:(UIImage*)oneImage
{
UIImage* onions = [UIImage imageNamed:@"0.png"];
NSMutableAttributedString *mas;
NSTextAttachment* onionatt = [NSTextAttachment new];
onionatt.image = onions;
onionatt.bounds = CGRectMake(0,-5,onions.size.width,onions.size.height);
NSAttributedString* onionattchar = [NSAttributedString attributedStringWithAttachment:onionatt];
NSRange r = [[mas string] rangeOfString:@"Onions"];
[mas insertAttributedString:onionattchar atIndex:(r.location + r.length)];
NSString *string =[NSString stringWithFormat:@"%@",mas];
[self.textDocumentProxy insertText:string];
}
是否有可能将图像传递给
[self.textDocumentProxy insertText:string];
以下所附图像显示了我到底想如何使用此图像键盘。我很惊讶表情符号键盘将如何工作?
最佳答案
据我所知,从iOS 8 beta 4 起,您正在寻找的行为是不可能的。
当前,iOS自定义键盘与文本交互的唯一方法是通过<UITextDocumentProxy>
,并且插入任何内容的唯一方法是通过insertText:
方法。
这是insertText:
中<UITextDocumentProxy>
方法的 header :
- (void)insertText:(NSString *)text;
如您所见,它需要一个简单的
NSString
...而不是NSAttributedString
。这就是为什么您尝试插入图像不起作用的原因。但是,尽管您无法添加图片,但是插入表情符号还是很有可能的,因为表情符号实际上只是一个Unicode字符。
要添加表情符号,只需插入适当的Unicode字符:
[self.textDocumentProxy insertText:@"\U0001F603"];
有用的链接:
Unicode表情符号列表:http://apps.timwhitlock.info/emoji/tables/unicode
Unicode字符作为NSStrings :Writing a unicode character with NSString
关于ios - 在iOS 8中使用“自定义键盘”在iMessage中共享图像,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24933251/