問題タブ [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.
objective-c - NSOpenPanel/NSSavePanel でメモリ リークが発生するのはなぜですか?
理由はわかりませんが、シンプル[[NSOpenPanel openPanel] runModal];
にするとメモリ リークが発生します - Leaks Instrument で見られます。
オフのようです。
これは自動解放されるオブジェクトですが、ARpool がドレインされた後に自動的に解放されるべきではありませんか?
これを修正する方法はありますか?
objective-c - NSDocumentベースのアプリケーションの[保存]パネルで押されたボタンを特定する
NSDocumentベースのアプリケーションで保存ダイアログが閉じられたときに押されたボタン(保存、キャンセル)をどのように判断すればよいですか?保存パネルは、メニューから保存が選択されたときにNSDocumentによって提供されるデフォルトです。
-(BOOL)writeToURL:ofType:error:が呼び出される前に、いくつかの変数を変更する機会が欲しいです。
ありがとう...
objective-c - NSSavePanel の問題
私はココア プログラミングの初心者ですが、C++ でかなりの作業を行いました。
NSSavePanel クラスに問題があります。(以下に示すように) 使用するたびに、(ブレークポイントを使用して) コードが終了ブラケットを実行しようとしていることがわかります。次に、main.h ファイルで Xcode から BAD_ACCESS メッセージを取得します。私は一生、自分が間違っていることを理解することはできません。コードは次のとおりです。
新しい宛先をハードコーディングして NSSavePanel を削除すると、クラッシュは発生しません。
事前に感謝します。これが簡単な修正である場合はお詫び申し上げます。
cocoa - NSSavePanelはアクションを処理します
簡単な質問:NSSavePanelで押されたキャンセルボタンのアクションを処理したい。デリゲートクラスでパネルを使用しています:
私はドキュメントでこれを見ました:
ok:このアクションメソッドは、ユーザーがパネルの[OK]ボタンをクリックしたときに呼び出されます。
- (IBAction)ok:(id)sender
しかし、私はその方法を処理するためにパネルに言う方法がわかりません...
ありがとう。
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 または私のコードのバグですか? この問題の回避策はありますか?
objective-c - 許可されたファイル タイプを plist から取得するスマートな方法
シナリオ:
Info.plist
Cocoa アプリケーションのファイルで許可されるファイル タイプ (コンテンツ タイプ) を定義したいと考えています。したがって、次の例のように追加しました。
さらに、私のアプリケーションでは、 を使用してファイルを開くことができますNSOpenPanel
。このパネルでは、次のセレクターを使用して、許可されるファイル タイプを設定できます: setAllowedFileTypes:
. ドキュメントには、UTI を使用できると記載されています。
ファイルの種類は、一般的なファイル拡張子または UTI にすることができます。
カスタム ソリューション:
Info.plist
ファイルから UTI を抽出するために、次のヘルパー メソッドを作成しました。
の代わりに[NSBundle mainBundle]
もCFBundleGetInfoDictionary(CFBundleGetMainBundle())
使えます。
質問:
- ファイルからコンテンツ タイプ情報を抽出するよりスマートな方法を知ってい
Info.plist
ますか? Cocoa 組み込み機能はありますか? - そこに含めることができるフォルダーの定義をどのように処理します
public.folder
か?
注:
調査を通じて、この記事は非常に有益であることがわかりました: Simplifying Data Handling with Uniform Type Identifiers。
cocoa - NSSavePanelキャンセル確認
私は NSSavePanel を持っており、シートを閉じないように「キャンセル」ボタンのアクションを処理したいと考えています。保存時にファイルを上書きしたい場合のように、savePanel シートの上に確認アラートを表示したい。
これを実装する最良の方法は何ですか?
ありがとう
cocoa - NSOpenPanelが閉じた後に何かをする
NSOpenPanelがあり、ユーザーが[OK]をクリックした後、選択の検証を行いたいと思います。私のコードは単純です:
[self window]
アプリケーションモーダルウィンドウです。パネルがシートとして開きます。ここまでは順調ですね。
Appleのドキュメントによると、完了ハンドラーは「ユーザーがパネルを閉じた後に」呼び出されることになっています。しかし、私の場合は、パネルが閉じたときではなく、「OK/キャンセル」ボタンを押すとすぐに呼び出されます。これにより、パネルが閉じた後ではなく、開いているパネルの上でエラーアラートが開きます。それでも動作しますが、Macのようなものではありません。
ユーザーが[OK]をクリックし、開いているパネルシートを折りたたんでから、アラートシートを表示することをお勧めします。
遅延セレクターを使用してアラートを表示できると思いますが、それはハックのようです。
macos - OSXのユーザーライブラリフォルダへのパスを取得する
ユーザーのLibraryフォルダーを宛先フォルダーとしてNSSavePanelを開く必要があります。通常、これを行うには、を入力~/Library/
し[NSSavePanel beginSheetForDirectory]
ます。
アプリケーションがサンドボックス化されていない限り、これは正常に機能します。サンドボックス化されたアプリケーションの場合、これによりNSSavePanel
、アプリケーションドキュメント「ボックス」内のフォルダにアクセスしようとします。
/Users/username/Library/
実行時にユーザーがわからないため、参照できませんusername
。では、ココアでこのパスにリンクするにはどうすればよいですか?