選択ボタンをクリックした後、どうすればファイルを選択できますか?選択ボタンをクリックすると、ハードディスクからファイルを選択できるポップアップウィンドウが開くはずです。
-(IBAction)select:(id)sender{
NSOpenPanel* dlg =[NSOpenPanel openPanel];
[dlg setCanChooseFiles:YES];
[dlg setCanChooseDirectories:YES];
}
選択ボタンをクリックした後、どうすればファイルを選択できますか?選択ボタンをクリックすると、ハードディスクからファイルを選択できるポップアップウィンドウが開くはずです。
-(IBAction)select:(id)sender{
NSOpenPanel* dlg =[NSOpenPanel openPanel];
[dlg setCanChooseFiles:YES];
[dlg setCanChooseDirectories:YES];
}
編集(コード投稿後):
実際にはパネルを開いているわけではないため、次のようなものが必要です。
NSInteger button = [dlg runModal];
if (button == NSFileHandlingPanelOKButton)
{
NSURL *chosenURL = [[dlg URLs] objectAtIndex:0];
// Do something with chosen file
}
編集: .So uNSOpenPanel
のみが可能です。run modally
need
[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];
}
}
}];