問題タブ [nssavepanel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
1623 参照

objective-c - NSOpenPanel/NSSavePanel でメモリ リークが発生するのはなぜですか?

理由はわかりませんが、シンプル[[NSOpenPanel openPanel] runModal];にするとメモリ リークが発生します - Leaks Instrument で見られます。

オフのようです。

これは自動解放されるオブジェクトですが、ARpool がドレインされた後に自動的に解放されるべきではありませんか?

これを修正する方法はありますか?

0 投票する
1 に答える
271 参照

objective-c - NSDocumentベースのアプリケーションの[保存]パネルで押されたボタンを特定する

NSDocumentベースのアプリケーションで保存ダイアログが閉じられたときに押されたボタン(保存、キャンセル)をどのように判断すればよいですか?保存パネルは、メニューから保存が選択されたときにNSDocumentによって提供されるデフォルトです。

-(BOOL)writeToURL:ofType:error:が呼び出される前に、いくつかの変数を変更する機会が欲しいです。

ありがとう...

0 投票する
2 に答える
676 参照

objective-c - NSSavePanel の問題

私はココア プログラミングの初心者ですが、C++ でかなりの作業を行いました。

NSSavePanel クラスに問題があります。(以下に示すように) 使用するたびに、(ブレークポイントを使用して) コードが終了ブラケットを実行しようとしていることがわかります。次に、main.h ファイルで Xcode から BAD_ACCESS メッセージを取得します。私は一生、自分が間違っていることを理解することはできません。コードは次のとおりです。

新しい宛先をハードコーディングして NSSavePanel を削除すると、クラッシュは発生しません。

事前に感謝します。これが簡単な修正である場合はお詫び申し上げます。

0 投票する
2 に答える
865 参照

cocoa - NSSavePanelはアクションを処理します

簡単な質問:NSSavePanelで押されたキャンセルボタンのアクションを処理したい。デリゲートクラスでパネルを使用しています:

私はドキュメントでこれを見ました:

ok:このアクションメソッドは、ユーザーがパネルの[OK]ボタンをクリックしたときに呼び出されます。

  • (IBAction)ok:(id)sender

しかし、私はその方法を処理するためにパネルに言う方法がわかりません...

ありがとう。

0 投票する
1 に答える
660 参照

core-graphics - NSSavePanel、CGImageDestinationFinalize、OS X サンドボックス

NSSavePanel を使用して、ユーザーがアプリに保存する画像を選択できるようにしています。アプリのサンドボックスと資格を有効にするまで、すべてがうまくいきました。この問題は、既存のファイルを選択すると発生します。私のコードは次のようなものです:

// ファイルの保存先への URL と保存先の CGImageDestination を作成します。CGImageDestinationRef imageDestination = CGImageDestinationCreateWithURL((CFURLRef)[savePanel URL], (CFStringRef)newUTType, 1, NULL); CGImageDestinationAddImage(imageDestination, cgimage, (CFDictionaryRef)metaData); const bool result = CGImageDestinationFinalize(imageDestination);

画像を保存するために新しいファイルを選択すると機能しますが、既存のファイルを選択すると、既存のファイルのほかに奇妙な名前のファイルが作成され、宛先 URL の内容を上書きできません。さらに悪いことに、エラーが返されず、障害を検出できません。これは CoreGraphics または私のコードのバグですか? この問題の回避策はありますか?

0 投票する
1 に答える
1142 参照

objective-c - 許可されたファイル タイプを plist から取得するスマートな方法

シナリオ:

Info.plistCocoa アプリケーションのファイルで許可されるファイル タイプ (コンテンツ タイプ) を定義したいと考えています。したがって、次の例のように追加しました。

さらに、私のアプリケーションでは、 を使用してファイルを開くことができますNSOpenPanel。このパネルでは、次のセレクターを使用して、許可されるファイル タイプを設定できます: setAllowedFileTypes:. ドキュメントには、UTI を使用できると記載されています。

ファイルの種類は、一般的なファイル拡張子または UTI にすることができます。


カスタム ソリューション:

Info.plistファイルから UTI を抽出するために、次のヘルパー メソッドを作成しました。

の代わりに[NSBundle mainBundle]CFBundleGetInfoDictionary(CFBundleGetMainBundle())使えます。


質問:

  1. ファイルからコンテンツ タイプ情報を抽出するよりスマートな方法を知っていInfo.plistますか? Cocoa 組み込み機能はありますか?
  2. そこに含めることができるフォルダーの定義をどのように処理しますpublic.folderか?

注:
調査を通じて、この記事は非常に有益であることがわかりました: Simplifying Data Handling with Uniform Type Identifiers

0 投票する
1 に答える
542 参照

cocoa - NSSavePanelキャンセル確認

私は NSSavePanel を持っており、シートを閉じないように「キャンセル」ボタンのアクションを処理したいと考えています。保存時にファイルを上書きしたい場合のように、savePanel シートの上に確認アラートを表示したい。

これを実装する最良の方法は何ですか?

ありがとう

0 投票する
1 に答える
2131 参照

cocoa - NSOpenPanelが閉じた後に何かをする

NSOpenPanelがあり、ユーザーが[OK]をクリックした後、選択の検証を行いたいと思います。私のコードは単純です:

[self window]アプリケーションモーダルウィンドウです。パネルがシートとして開きます。ここまでは順調ですね。

Appleのドキュメントによると、完了ハンドラーは「ユーザーがパネルを閉じた後に」呼び出されることになっています。しかし、私の場合は、パネルが閉じたときではなく、「OK/キャンセル」ボタンを押すとすぐに呼び出されます。これにより、パネルが閉じた後ではなく、開いているパネルの上でエラーアラートが開きます。それでも動作しますが、Macのようなものではありません。

ユーザーが[OK]をクリックし、開いているパネルシートを折りたたんでから、アラートシートを表示することをお勧めします。

遅延セレクターを使用してアラートを表示できると思いますが、それはハックのようです。

0 投票する
3 に答える
6667 参照

macos - OSXのユーザーライブラリフォルダへのパスを取得する

ユーザーのLibraryフォルダーを宛先フォルダーとしてNSSavePanelを開く必要があります。通常、これを行うには、を入力~/Library/[NSSavePanel beginSheetForDirectory]ます。

アプリケーションがサンドボックス化されていない限り、これは正常に機能します。サンドボックス化されたアプリケーションの場合、これによりNSSavePanel、アプリケーションドキュメント「ボックス」内のフォルダにアクセスしようとします。

/Users/username/Library/実行時にユーザーがわからないため、参照できませんusername。では、ココアでこのパスにリンクするにはどうすればよいですか?