我试图在iPhone粘贴板中放入一些纯文本.以下代码似乎不起作用:
UIPasteboard *pboard = [UIPasteboard generalPasteboard];
NSString *value = @"test";
[pboard setValue: value forPasteboardType: @"public.plain-text"];
Run Code Online (Sandbox Code Playgroud)
我猜这个问题是在PasteBoard类型参数中.传递@"public.plain-text"什么也没有发生.传递kUTTypePlainText编译器抱怨指针类型不兼容,但不会崩溃,也没有任何反应.使用kUTTypePlainText似乎也需要链接MobileCoreServices,这在文档中没有提到.
此代码应将字符串复制到generalPasteboard,作为[[UIPasteboard generalPasteboard] string]对象,但该方法会导致程序终止.
- (void)copyResultToPasteboard {
NSString *message = self.resultTextView.text;
[UIPasteboard generalPasteboard].string = message;
[message release];
}
Run Code Online (Sandbox Code Playgroud)
我认为这与格式有关,因为如果消息设置为文字字符串,方法可以正常工作,但是resultTextView.text只是一个NSString ...我不完全明白,任何人都可以帮忙吗?
我有兴趣让我的用户将他们输入的文本复制到剪切和粘贴缓冲区中,但我想将其作为HTML来实现.
这样的事情甚至可能吗?或者我需要使用MIME格式?(我不知道.)
谢谢.
我使用UIPasteboard该类来使用具有多个应用程序的数据.该文档说,卸载创建者应用程序时会删除持久性.我做两个应用程序,一个用于复制,另一个用于过去:
创作者应用:
-(IBAction)paste:(id)sender{
UIPasteboard* pb = [UIPasteboard pasteboardWithName:@"mytext" create:YES];
tv_pasting.text = pb.string;
}
Run Code Online (Sandbox Code Playgroud)
读者应用:
-(IBAction)copy:(id)sender{
UIPasteboard* pb = [UIPasteboard pasteboardWithName:@"mytext" create:YES];
pb.persistent = YES;
pb.string = tf_copy.text;
}
Run Code Online (Sandbox Code Playgroud)
我在我的第一个应用程序中进行了文本复制,我粘贴在我的第二个应用程序上,文本被复制,一切都很好.之后,我卸载了我的两个应用程序并重新安装了阅读器应用程序 我粘贴...并且旧版本仍然可用.为什么?
我用它UIPasteboard来复制/粘贴两个文本UITextView.
代码如下所示:
- (void)viewDidLoad {
[super viewDidLoad];
pasteBoard = [UIPasteboard generalPasteboard]; //it is declared in .h as UIPasteboard *pasteBoard;
}
-(IBAction)doCopyBtn {
if (![toCopyTextView.text isEqualToString:@""]){
pasteBoard.string = toCopyTextView.text;
NSLog(@"pasteb1 %@", pasteBoard.string);
} else {
NSLog (@"error! enter smth");
}
}
-(IBAction)doPasteBtn {
if (![pasteBoard.string isEqualToString:@""]){
toPasteTextView.text = pasteBoard.string;
NSLog(@"pasteb2 %@", pasteBoard.string);
} else {
NSLog (@"error! enter smth");
}
}
Run Code Online (Sandbox Code Playgroud)
即使这不能帮助(的NSLog返回:pasteb2 (null))
-(void) viewWillDisappear:(BOOL)animated{
[super viewWillDisappear:animated];
[pasteBoard setString:@""];
}
Run Code Online (Sandbox Code Playgroud) 是否可以使用命名的UIPasteboard(即不是全局的)在两个应用程序之间传输数据?
Apple的文档说:
粘贴板可以是公共的或私人的.公共粘贴板称为系统粘贴板; 私有粘贴板由应用程序创建,因此称为应用程序粘贴板.
这意味着粘贴板可以是"全局和公共"或"命名和私有".
我创建了两个具有不同捆绑ID的应用程序,并且似乎能够使用私有名称的粘贴板将内容从一个应用程序传递到另一个应用程序.但这只是iOS模拟器的一个功能,还是真正支持但没有很好记录的东西?
感谢您的任何见解!
我正在开发一个应用程序,其中一个模块是,一个简单的列表TableView,显示音频文件列表.当用户选择任何音频文件时,操作表附带一个选项SMS.我需要通过短信发送特定的音频文件.请让我知道如何使用它.
如果这是不可能的,请提供苹果文档,以便它作为我展示的证据.
这是我试图粘贴音频文件...
第一种方式:
UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
NSString *path = [[NSBundle mainBundle] pathForResource:@"audiofilename" ofType:@"caf"];
NSData *myData = [NSData dataWithContentsOfFile:path];
[pasteboard setData:myData forPasteboardType:@"audiofile"];
NSString *copyPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/audiofile.caf"];
NSURL *sndURL = [NSURL fileURLWithPath:copyPath];
[pasteboard setString:[NSString stringWithFormat:@"%@",sndURL]];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:@"sms:12345678"]]];
Run Code Online (Sandbox Code Playgroud)
第二种方式:
Class messageClass = (NSClassFromString(@"MFMessageComposeViewController"));
if([messageClass canSendText])
{
messagepicker = [[MFMessageComposeViewController alloc] init];
messagepicker.messageComposeDelegate = self;
UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
NSString *path = [[NSBundle mainBundle] pathForResource:@"290912044119" ofType:@"caf"];
NSData *myData = [NSData dataWithContentsOfFile:path];
[pasteboard setData:myData forPasteboardType:@"audiofile"];
NSString *copyPath …Run Code Online (Sandbox Code Playgroud) 如何在具有不同团队ID的同一设备上的两个应用程序之间私下共享数据?我们过去通过粘贴板来做到这一点,但是使用iOS7来使用特定于应用程序的粘贴板,他们现在必须具有相同的团队ID.
我们试图解决的问题是,如果用户购买了另一个应用,则可以在一个应用中解锁功能.我们希望这在后台安静地发生(因此最初使用特定于应用程序的粘贴板),但具有一定的安全性以防止用户欺骗进程和解锁功能.
我们正在研究的一种方法是使用系统粘贴板,但使用设备特定密钥加密数据.只要两个应用程序使用相同的算法生成密钥,这应该有效,但他的问题就是如何生成应用程序特定的密钥.
有关启用此类功能解锁方案的最佳方法的任何建议/指导将非常有帮助.
最近iOS有iOS 10的更新并且开发人员有一些变化,其中一个变化是现在我们无法检查允许完全访问我们之前做过的方式在下面给出
-(BOOL)isOpenAccessGranted{
return [UIPasteboard generalPasteboard];
}
Run Code Online (Sandbox Code Playgroud)
我搜索了最新的UIPasteboard开发者指南,但无法解决.有没有人有一个适当的解决方案.
当我从 Safari 中的网站复制文本时,会创建两个粘贴板项目。这是[粘贴板项目]的输出
(
{
"Apple Web Archive pasteboard type" = < [...archive...] >;
"public.text" = "pages of a journal,";
},
{
"iOS rich content paste pasteboard type" = <694f5320 72696368 20636f6e 74656e74 20706173 74652070 61737465 626f6172 64207479 7065>;
}
)
Run Code Online (Sandbox Code Playgroud)
什么是“iOS 丰富内容粘贴粘贴板类型”?数据实际上代表什么?其他应用程序是否使用过这种表示?
谢谢。
uipasteboard ×10
ios ×8
cocoa-touch ×3
iphone ×2
objective-c ×2
clipboard ×1
copy-paste ×1
ios10 ×1
ios7 ×1
keyboard ×1
nsstring ×1
sms ×1
uikit ×1
uitextview ×1