12

Interface Builderのボタンまたは入力フィールドをクリックするとファイルダイアログが開き、1つ以上のファイルを選択して指定した配列/テーブルに配置できるようにする方法を考えています...

ボタンが押されてファイルが選択されると(これは非常に些細なことのように思えます)、ある種の配列(選択したファイルへのパスを含む配列など)がすでに含まれていると思いますので、それについては説明します..ボタンをファイルセレクターにリンクする方法と、ファイルセレクターがファイル (またはファイルへのパス) をどのように配信するかを知る必要があるため、それらを配列にリダイレクトできます

これを行う簡単な方法はありますか、さらに重要なことです。ファイルセレクターのようなものはありますか、それともInterfaceビルダーの代わりにXCodeでこれを行う必要がありますか?

4

3 に答える 3

8

Cocoaでファイルオープンボックスを開く方法を調べていたら、このページにたどり着きました。OS X 10.7 のリリースにより、リンクされている多くのサンプルが非推奨になりました。そのため、コンパイラの警告を回避するためのサンプル コードを次に示します。

// -----------------
// NSOpenPanel: Displaying a File Open Dialog in OS X 10.7
// -----------------

// Any ole method
- (void)someMethod {
  // Create a File Open Dialog class.
  NSOpenPanel *openDlg = [NSOpenPanel openPanel];

  // Set array of file types 
  NSArray<NSString*> *fileTypesArray = @[@"jpg", @"gif", @"png"];

  // Enable options in the dialog.
  [openDlg setCanChooseFiles:YES];    
  [openDlg setAllowedFileTypes:fileTypesArray];
  [openDlg setAllowsMultipleSelection:YES];

  // Display the dialog box.  If OK is pressed, process the files.
  if ([openDlg runModal] == NSModalResponseOK) {
    // Get list of all files selected
    NSArray<NSURL*> *files = [openDlg URLs];

    // Loop through the files and process them.
    for (NSURL *file in files) {
      // Do something with the filename.
      NSLog(@"File path: %@", [file path]);
    }
  }
}
于 2012-02-21T09:41:55.947 に答える
5

Interface Builder は、インターフェースを設計して相互にリンクするためのものです。ファイルを開いて配列に入れたいとしますが、これは安全に Xcode 側にあります。ボタンのアクションで NSOpenPanel を表示し、結果をテーブルのデータ ソースに提供します。

于 2009-01-26T23:17:36.367 に答える