15

NSSavePanel には、保存パネルのディレクトリとファイル名を事前設定できる runModalForDirectory:file: メソッドがありました。しかし、それは 10.6 で廃止されました。

NSSavePanel を作成するとき、非推奨の方法を使用せずにファイル名を事前に設定するにはどうすればよいですか?

4

2 に答える 2

36

setNameFieldStringValue:保存パネルを実行する前に、10.6 で追加されたメソッドを使用します。デフォルトのディレクトリも設定したい場合はsetDirectoryURL:、10.6 で追加されたメソッドが必要になります。

NSString *defaultDirectoryPath, *defaultName;
NSSavePanel *savePanel;
...
[savePanel setNameFieldStringValue:defaultName];
[savePanel setDirectoryURL:[NSURL fileURLWithPath:defaultDirectoryPath]];
[savePanel runModal];
于 2011-07-13T02:31:08.180 に答える
7

最初は気付かなかった NSSavePanel#setNameFieldStringValue というファイル名を設定するメソッドがあります。

以下は macruby 構文の完全な例です。

def run_save_settings_dialog(sender)
  dialog = NSSavePanel.savePanel
  dialog.title = "Save Settings"
  dialog.canCreateDirectories = true
  dialog.showsHiddenFiles = true
  dialog.nameFieldStringValue = "MyFile"
  dialog.canChooseFiles = true
  dialog.canChooseDirectories = false
  dialog.allowsMultipleSelection = false
  dialog.setDirectoryURL NSURL.fileURLWithPath("some/path")
  if dialog.runModal == NSFileHandlingPanelOKButton
    save_settings(dialog.URL)
  end
end

def save_settings(file_url)
  File.open(file_url.path, 'w') {|f| f.write "Stuff" }
end
于 2011-07-13T02:38:39.613 に答える