123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- #import "AppSandboxFileAccessOpenSavePanelDelegate.h"
- #if !__has_feature(objc_arc)
- #error ARC must be enabled!
- #endif
- @interface AppSandboxFileAccessOpenSavePanelDelegate ()
- @property (readwrite, strong, nonatomic) NSArray *pathComponents;
- @end
- @implementation AppSandboxFileAccessOpenSavePanelDelegate
- - (instancetype)initWithFileURL:(NSURL *)fileURL {
- self = [super init];
- if (self) {
- NSParameterAssert(fileURL);
- self.pathComponents = fileURL.pathComponents;
- }
- return self;
- }
- #pragma mark -- NSOpenSavePanelDelegate
- - (BOOL)panel:(id)sender shouldEnableURL:(NSURL *)url {
- NSParameterAssert(url);
-
- NSArray *pathComponents = self.pathComponents;
- NSArray *otherPathComponents = url.pathComponents;
-
-
- if (otherPathComponents.count > pathComponents.count) {
- return NO;
- }
-
-
- for (NSUInteger i = 0; i < otherPathComponents.count; ++i) {
- NSString *comp1 = otherPathComponents[i];
- NSString *comp2 = pathComponents[i];
-
- if (![comp1 isEqualToString:comp2]) {
- return NO;
- }
- }
-
-
- return YES;
- }
- @end
|