gpt4 book ai didi

iphone - UIDocumentInteractionController 中没有选项

转载 作者:行者123 更新时间:2023-12-03 19:39:16 25 4
gpt4 key购买 nike

是否可以检查设备上有多少个能够处理特定文件类型的应用程序?基本上,我的应用程序中有一个按钮,允许用户在另一个应用程序中打开,但如果没有可能的应用程序可以打开文档,我不想显示它。

最佳答案

好吧,所以想出了一个丑陋的黑客,但似乎有效......很想找到更好的方法。

为扩展创建头文件:

//  UIDocumentInteractionController+willShowOpenIn.h

#import <Foundation/Foundation.h>

@interface UIDocumentInteractionController (willShowOpenIn)
- (BOOL)willShowOpenIn;
+ (BOOL)willShowOpenInForURL:(NSURL *)filePathURL;
@end

并实现:

//  UIDocumentInteractionController+willShowOpenIn.m

#import "UIDocumentInteractionController+willShowOpenIn.h"

@implementation UIDocumentInteractionController (willShowOpenIn)
- (BOOL)willShowOpenIn
{
id <UIDocumentInteractionControllerDelegate> oldDelegate = self.delegate;
self.delegate = nil;
UIWindow *window = [[[UIApplication sharedApplication] windows] objectAtIndex:0];
if([self presentOpenInMenuFromRect:window.bounds inView:window
animated:NO])
{
[self dismissMenuAnimated:NO];
self.delegate = oldDelegate;
return YES;
}
else {
self.delegate = oldDelegate;
return NO;
}
}

+ (BOOL)willShowOpenInForURL:(NSURL *)filePathURL
{
UIDocumentInteractionController *tempController = [UIDocumentInteractionController interactionControllerWithURL:filePathURL];
return [tempController willShowOpenIn];
}
@end

然后使用:

#import "UIDocumentInteractionController+willShowOpenIn.h"

...

NSURL *testURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"test" ofType:@"txt"]];
NSLog(@"Will show - %@",[UIDocumentInteractionController willShowOpenInForURL:testURL] ? @"YES" : @"NO");

请告诉我有更好的方法:)

关于iphone - UIDocumentInteractionController 中没有选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6769863/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com