私は、人にファイルを選択するように尋ねるウィンドウを表示しようとしていました。問題は、私が使用しているメソッドが廃止されているとXcodeが訴えていることです。私はclass referenceを見ましたが、 "running panels"セクションの下のものはMac OS 10.6では廃止されました。今使っている別のクラスがありますか?以下に示すようにNSOpenPanel - 廃止予定のものは何ですか?
答えて
は、私の知る限りでは、あなたはrunModal
メソッドを使用することができます。
NSOpenPanel *openPanel = [[NSOpenPanel alloc] init];
if ([openPanel runModal] == NSOKButton)
{
NSString *selectedFileName = [openPanel filename];
}
は10.6で、このクラスにいくつかの変更がありました。利点の1つは、現在ブロックベースのAPIがあることです。
ここはそれを使用する方法のコードスニペットです:私は6年後にこの質問が有用であることが判明どのように見て
NSOpenPanel *panel = [[NSOpenPanel openPanel] retain];
// Configure your panel the way you want it
[panel setCanChooseFiles:YES];
[panel setCanChooseDirectories:NO];
[panel setAllowsMultipleSelection:YES];
[panel setAllowedFileTypes:[NSArray arrayWithObject:@"txt"]];
[panel beginWithCompletionHandler:^(NSInteger result){
if (result == NSFileHandlingPanelOKButton) {
for (NSURL *fileURL in [panel URLs]) {
// Do what you want with fileURL
// ...
}
}
[panel release];
}];
これは10.10で使用する正しいコードのようですが、ARCを使用している場合は保持ビットとリリースビットを取り除きます。 – smacdonald
また、[ - beginSheetModalForWindow:completionHandler:](https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSSavePanel_Class/#//apple_ref/occ/instm/NSSavePanel/)を使用することもできます。 beginSheetModalForWindow:completionHandler :)別のダイアログを開かない場合。 – pi3
、そして何の迅速な答えは存在しないので、ここでの迅速な解決策です。
スタンドアローンウィンドウとシートの2つのサンプルがあります。それは `NSOpenPanel`のスーパークラスである` NSSavePanel`、によって実装されているので、あなたがこの方法を見つけることができませんでした
スウィフト3.0
func selectIcon() {
// create panel
let panel = NSOpenPanel()
// configure as desired
panel.canChooseFiles = true
panel.canChooseDirectories = false
panel.allowsMultipleSelection = false
panel.allowedFileTypes = ["png"]
// *** ONLY USE ONE OF THE FOLLOWING OPTIONS, NOT BOTH ***
// ********************** OPTION 1 ***********************
// use this if you want a selection window to display that is
// displayed as a separate stand alone window
panel.begin { [weak self] (result) in
guard result == NSFileHandlingPanelOKButton, panel.urls.isEmpty == false, let url = panel.urls.first else {
return
}
let image = NSImage.init(contentsOf: url)
DispatchQueue.main.async {
self?.iconImageView.image = image
}
}
// ********************** OPTION 2 ***********************
// use this if you want a sheet style view that displays sliding
// down from your apps window
panel.beginSheetModal(for: self.view.window!) { [weak self] (result) in
guard result == NSFileHandlingPanelOKButton, panel.urls.isEmpty == false, let url = panel.urls.first else {
return
}
let image = NSImage.init(contentsOf: url)
DispatchQueue.main.async {
self?.iconImageView.image = image
}
}
}
したがって、 '.begin'は補完ハンドラです。将来のon-lookersのために:あなたは以下を行うこともできます: '応答= panel.runModal();応答== NSApplication.ModalResponse.OKの場合{/ * panel.url * /}での処理' '.CANCEL' – eonist
- 1. 廃止予定のCanvas.getMatrix()の代わりになるものは何ですか?
- 2. HTMLマップタグは廃止され、廃止予定ですか?
- 3. 廃止予定と廃止予定のHTML
- 4. 廃止予定の表現
- 5. iPhone - 廃止予定のメソッドは、いつ廃止されるのですか?
- 6. Android TelephonyManager getCelllLocation、廃止予定ですか?
- 7. 「廃止予定」とは何を意味しますか?
- 8. MongoDB Morphiaは廃止予定です。
- 9. FilterRegistrationBeanはSpringBoot 1.4で廃止予定*
- 10. VelocityAutoConfigurationはSpringBoot1.4で廃止予定*
- 11. "廃止予定:session_is_register()"エラー - PHP
- 12. UWP c#DataRequest.FailWithDisplayText廃止予定
- 13. Blackberry MenuItem廃止予定
- 14. メイク:LDLIBS、廃止予定?
- 15. MySQL(廃止予定)mysql_num_row()エラー
- 16. このMagicalRecord廃止予定コールの代替方法は何ですか?
- 17. カメラ2と廃止予定のカメラの使用 - ベストプラクティスは何ですか?
- 18. iOS 7で廃止予定のregionMonitoringAvailableの代わりに使用するものは何ですか?
- 19. NSObjectのファイナライズは廃止予定です - 代わりに何をしますか?
- 20. アンドロイド:TextViewのsingleLineは、 "廃止予定"の中でnolongerですか?
- 21. なぜVelocityのサポートはSpring 4.3で廃止予定ですか?
- 22. Androidで@SuppressWarnings(「廃止予定」)と(「未使用」)とは何ですか?
- 23. 廃止予定のPLSQLプロシージャ/ファンクションのコード
- 24. AndroidのCanvas.clipRect()の廃止予定
- 25. 廃止予定のcreateFromPduのエラー
- 26. 廃止予定のCordovaバージョンのリスト
- 27. Androidの廃止予定はいつですか?
- 28. モバイルアプリの廃止予定操作
- 29. 廃止予定SVGの代替案pathSegList
- 30. npmインストールと廃止予定の警告
@Cole理由があります。 +1 – ughoavgfhw
ああ、ありがとうJesseと@ughoavgfhw。 – Cole
同じことは、シートとして実行する方法を含め、保存パネルまたは開いたパネルを実行する他の優れた方法にも当てはまります。 –