0
私のプログラムにNSOpenPanel
を使用しようとしましたが、NSOpenpanelがメインスレッドで実行されないため、全く動作しません。それはちょうどでこれを取得するには、まったく動作しませんメインスレッドのNSOpenPanelが動作しません
[fileContents performSelectorOnMainThread:@selector(runModal) withObject:nil waitUntilDone:YES];
と
dispatch_sync(dispatch_get_main_queue(), ^{
//do UI stuff
});
:
は、ここで私は以下のコードの両方を試してみました私のコード
NSString *strURL;
NSOpenPanel *fileContents;
NSURL *panelURL;
NSArray *fileTypes = [NSArray arrayWithObjects:@"strings", @"STRINGS", nil];
fileContents = [NSOpenPanel openPanel];
[fileContents setCanChooseDirectories:NO];
[fileContents setCanChooseFiles:YES];
[fileContents setAllowedFileTypes:fileTypes];
[fileContents setAllowsMultipleSelection:NO];
NSInteger openPanelButton = [fileContents runModal];
if(openPanelButton == NSModalResponseOK)
{
panelURL = [fileContents URL];
strURL = panelURL.absoluteString;
}
NSArray *linesReadOnly = [strURL componentsSeparatedByString:@"\n"];
ですメインスレッド。何が間違っていますか?
Objective-Cに関する限り、NSOpenPanelのトピックについてはここで完全に説明しました。新しいことはありません。 –