谁能告诉我如何删除QLPreviewController打印按钮?还想禁用剪切/粘贴/复制.
我希望用另一个应用程序打开一个文件(存储在我的应用程序中).
目前,我正在使用openURL(有一个专用的url方案),如果我使用托管在互联网上的文件,它工作正常,但我想使用本地文件,因此:a)它可以脱机工作b)很多用户离开小区覆盖范围或国际漫游的时间
我到目前为止所尝试的内容:我没有运气告诉openURL使用本地文件,我尝试了一些方法,但它们都是这样的
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"ext"];
NSURL *fileURL = [NSURL fileURLWithPath:filePath];
[[UIApplication sharedApplication] openURL:fileURL];
Run Code Online (Sandbox Code Playgroud)
也
NSURL *fileURL = [[NSBundle mainBundle] URLForResource: @"test" withExtension:@"ext"];
[[UIApplication sharedApplication] openURL:fileURL];
Run Code Online (Sandbox Code Playgroud)
还可以手动使用具有localhost /和file://以及var/mobile等路径的不同变体的字符串
什么都行不通(对我来说无论如何)
所以,我环顾四周,遇到了UIDocumentInteractionController
我可以使用UIDocumentInteractionController让用户使用其他应用程序打开我的本地文件 - 但是它总是提供其他应用程序的多个选项,例如,其他应用程序之一可以是"Dropbox".
我不想让用户下载(或技术上传)我的文件副本以供其他方式使用.它包含我不希望如此容易获得的数据.
当我的目标应用程序打开文件(不是我的btw)时,它不允许任何类型的保存或访问原始数据.
我意识到,通过在我的应用程序中包含该文件,任何认真获取它的人都可以,我只是不想闪现一个大菜单,说'如果你想让自己的副本从中进行衍生作品,那就是'
理想情况下,我可以使用openURL,但我认为这是因为其他应用程序没有响应的"沙箱" - 在Android中我使用mode_world_readable将文件声明为其他应用程序可读(因此将其放在沙箱之外,并且它不允许其他应用程序写入它,只是阅读) - 无论如何在iOS上做同样的事情?
否则,如果我可以强制UIDocumentInteractionController使用特定的应用程序而不显示菜单 - 那也没关系.
对于长时间阅读感到抱歉,任何帮助表示赞赏.
编辑:我刚收到Apple Tech支持人员的回复,他们告诉我目前这不可能(就在iOS 6发布之后)
我们的iPad应用程序可以显示文档并在需要时将其保存在线下 我有一个名为DocumentViewController的QLPreviewController子类(从现在起名为DVC)来显示它们.
应用程序的工作流程: - 用户单击文档的名称,然后按下DVC以显示文档. - DVC离线下载文件并在完成后显示.(因此,下载HTTP URL,脱机存储,并返回脱机URL)
奇怪的是,只有PDF文件正在使用脱机URL,其余的崩溃..(虽然它适用于在线链接)
我做了一些测试,当我把文件://放在离线链接之前,应用程序没有崩溃,但DVC给我提供了一些关于文件的信息(就像它是一个excel 97-2004文档).
所以一些信息被转移,但我无法弄清楚问题是什么.
这里有一些截图,然后是一些代码.

代码: 请注意,Document是一个模型类,其文档属性包括id,name,file type和url.
//DVC QLPreviewController dataSource method for returning url
- (id <QLPreviewItem>) previewController: (QLPreviewController *) controller previewItemAtIndex: (NSInteger)index
{
[SaveHelper saveDocumentFileAndPropertyWithDocument:document];
//[SaveHelper getDocumentFileWithDocument:document]; without file://
//if I return document.documentUrl it is working with all files except iworks files)
return [SaveHelper getDocumentFileAsPathWithDocument:document]; //with file://
}
//SaveHelper methods
+ (NSString *)documentFilePathWithDocument:(Document *)document
{
return [[self documentFilePath] stringByAppendingPathComponent:[NSString stringWithFormat:@"%@%d.%@", DOCUMENT_FILE_PREFIX, document.documentId, document.documentType]];
}
+ (NSURL *)saveDocumentFileAndPropertyWithDocument:(Document *)document
{
if([self …Run Code Online (Sandbox Code Playgroud) 目前我在导航控制器中使用QLPreviewController.(pushViewController)
要隐藏导航栏,我使用UITapGestureRecognizer.用户可以通过单次触摸(点击)显示/隐藏导航栏.这在iOS5中运行良好
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapped:)];
[tapRecognizer setNumberOfTapsRequired:1];
[tapRecognizer setDelegate:self];
[[self view] addGestureRecognizer:tapRecognizer];
[tapRecognizer release];
}
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
return YES;
}
- (void)tapped:(UIGestureRecognizer*)gestureRecognizer
{
//hide -/- show navigation bar
[[self navigationController] setNavigationBarHidden:![[[self navigationController] navigationBar] isHidden] animated:YES];
}
Run Code Online (Sandbox Code Playgroud)
但是在发布的iOS 6版本中,水龙头现在完全被忽略了,所以我不能再隐藏我的导航栏了.
我想隐藏导航栏的原因是什么?
如果您打开.numbers文档,导航栏会隐藏导航栏下的"工作表按钮".
TY.