【问题标题】:Custom GIF Keyboard in iOS8iOS8 中的自定义 GIF 键盘
【发布时间】:2014-10-01 12:17:11
【问题描述】:
我正在使用应用程序扩展在 iOS8 中创建自定义 GIF 键盘。我创建了自定义键盘的布局。我正在实施 LongPress Gesture 来选择 GIF 图像,但它不起作用。那么我可以为此做些什么或对此有任何建议?
- (void)textWillChange:(id<UITextInput>)textInput {
[self.textDocumentProxy insertText:@"Hi"];
}
我也试过上面提到的 UITextInputDelegate。
此方法也仅处理文本追加。但我关心的是在输入区域加载 gif 或 png 图像。
【问题讨论】:
标签:
ios
objective-c
ios8
custom-keyboard
ios8-extension
【解决方案1】:
我已经完成了长按手势并为触摸处理程序制作了一个方法。
-(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 图像。
【解决方案2】:
例如,Popkey 正在做的是将点击的 GIF 复制到粘贴板。
然后,用户需要长按富文本字段并将内容粘贴到他们的 iMessage 中。
【解决方案3】:
您无法直接在输入区域中加载 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)
}