1

我正在使用应用程序扩展在 iOS8 中创建自定义 GIF 键盘。我创建了自定义键盘的布局。我正在实施 LongPress Gesture 来选择 GIF 图像,但它不起作用。那么我能为此做些什么或对此有任何建议呢?


- (void)textWillChange:(id<UITextInput>)textInput {
    [self.textDocumentProxy insertText:@"Hi"];
}

我也试过上面提到的 UITextInputDelegate 。此方法也仅处理文本追加。但我关心的是在输入区域加载 gif 或 png 图像。

4

3 回答 3

3

我已经完成了长按手势并为触摸处理程序制作了一个方法。

-(void)tapped:(id)sender
{
    UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
    UIImage *image = [UIImage imageNamed:@"img_temp.gif"];
    NSData *imgData = UIImagePNGRepresentation(image);
    [pasteboard setData:imgData forPasteboardType:[UIPasteboardTypeListImage objectAtIndex:0]];
}

我也给了成为第一响应者。

-(BOOL)canBecomeFirstResponder
{
    return YES;
}

我可以在粘贴板中复制文本,但无法复制 .gif 或 .png 图像。

于 2014-10-03T04:38:43.980 回答
2

例如,Popkey 正在做的是将点击的 GIF 复制到粘贴板上。

然后,用户需要长按富文本字段并将内容粘贴到他们的 iMessage 中。

于 2014-10-03T03:21:29.103 回答
0

您无法直接在输入区域中加载 gif。为此,您必须将 gif 复制到粘贴板,然后将 gif 粘贴到输入区域。

要将 gif 复制到粘贴板中,您需要将其转换为 NSData。

这是 Swift 3.0 中的演示代码。

let pb = UIPasteboard.general
let data = NSData(contentsOfURL: url)
 if data != nil
  {
     self.pb.setData(data!, forPasteboardType: kUTTypeGIF as String)
  }
于 2017-06-08T09:30:42.377 回答