1

選択ボタンをクリックした後、どうすればファイルを選択できますか?選択ボタンをクリックすると、ハードディスクからファイルを選択できるポップアップウィンドウが開くはずです。

-(IBAction)select:(id)sender{
    NSOpenPanel* dlg =[NSOpenPanel openPanel];
    [dlg setCanChooseFiles:YES];
    [dlg setCanChooseDirectories:YES];
}
4

2 に答える 2

3

編集(コード投稿後):

実際にはパネルを開いているわけではないため、次のようなものが必要です。

NSInteger button = [dlg runModal];
if (button == NSFileHandlingPanelOKButton)
{
    NSURL *chosenURL = [[dlg URLs] objectAtIndex:0];
    // Do something with chosen file
}
于 2012-12-12T09:23:41.053 に答える
2

編集: .So uNSOpenPanelのみが可能です。run modallyneed [YourNSOpenPanelObject runModal]

NSOpenPanelリンクを参照してください。


を使用しNSOpenPanelます。NSImage選択する例をfilteration以下に示します。

NSOpenPanel* openDlg = [NSOpenPanel openPanel];
//[openDlg setCanChooseFiles:YES];
//[openDlg setCanChooseDirectories:NO];
[openDlg setPrompt:@"Select"];
NSArray* imageTypes = [NSImage imageTypes];
[openDlg setAllowedFileTypes:imageTypes];
//[openDlg setAllowsOtherFileTypes:NO];
[openDlg beginWithCompletionHandler:^(NSInteger result){
 NSArray* files = [openDlg filenames];
 NSData *imgData;
 for(NSString* filePath in files)
 {
        NSURL *url = [[NSURL alloc]initFileURLWithPath:filePath];
        NSImage *img;
        if(url)
        { 
            img = [[NSImage alloc]initWithContentsOfURL:url];
            imgData = [NSData dataWithContentsOfURL:url];
            [url release];
        }
        if(img)
        {
            imgSubCategoryView.image = img; 
            [img release];
        }
        else
        {
            imgSubCategoryView.image = nil;
            NSAlert *alert = [[NSAlert alloc]init];
            [alert setMessageText:@"Application Message"];
            [alert setAlertStyle:NSInformationalAlertStyle];
            [alert setInformativeText:@"Select Only Image"];
            [alert beginSheetModalForWindow:_window
                              modalDelegate:self didEndSelector:nil contextInfo:nil];
        }
 }
}];
于 2012-12-12T09:42:55.707 に答える