@@ -106,11 +106,14 @@ - (NSString*)dialogOpenFilePanel:(NSString*)title
106106 multiselect: multiselect
107107 canChooseFiles: canChooseFiles
108108 canChooseFolders: canChooseFolders];
109- if (panel && [panel runModal ] == NSModalResponseOK ) {
110- if ([[panel URLs ] count ] > 0 ) {
111- NSString * seperator = [NSString stringWithFormat: @" %c " , 28 ];
112- return [[panel URLs ] componentsJoinedByString: seperator];
109+ if (panel && [panel runModal ] == NSModalResponseOK && [[panel URLs ] count ] > 0 ) {
110+ NSMutableArray * paths = [NSMutableArray arrayWithCapacity: [[panel URLs ] count ]];
111+ for (int i = 0 ; i < [[panel URLs ] count ]; i++) {
112+ NSURL * url = [[panel URLs ] objectAtIndex: i];
113+ [paths addObject: [url path ]];
113114 }
115+ NSString * seperator = [NSString stringWithFormat: @" %c " , 28 ];
116+ return [paths componentsJoinedByString: seperator];
114117 }
115118
116119 return @" " ;
@@ -133,12 +136,17 @@ - (void)dialogOpenFilePanelAsync:(NSString*)title
133136}
134137
135138- (void )dialogOpenFilePanelAsyncSelector : (NSOpenPanel *)panel {
136- NSString * paths = @" " ;
139+ NSString * pathsStr = @" " ;
137140 if (panel && [panel runModal ] == NSModalResponseOK && [[panel URLs ] count ] > 0 ) {
141+ NSMutableArray * paths = [NSMutableArray arrayWithCapacity: [[panel URLs ] count ]];
142+ for (int i = 0 ; i < [[panel URLs ] count ]; i++) {
143+ NSURL * url = [[panel URLs ] objectAtIndex: i];
144+ [paths addObject: [url path ]];
145+ }
138146 NSString * seperator = [NSString stringWithFormat: @" %c " , 28 ];
139- paths = [[panel URLs ] componentsJoinedByString: seperator];
147+ pathsStr = [paths componentsJoinedByString: seperator];
140148 }
141- asyncCallback ([paths UTF8String ]);
149+ asyncCallback ([pathsStr UTF8String ]);
142150}
143151
144152- (NSOpenPanel *)createOpenPanel : (NSString *)title
0 commit comments