問題タブ [nsdocument]
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 - プログラムによって NSDocument ファイルの名前が変更されたときの警告を防ぐ
私のアプリケーションでは、ユーザーは現在開いているドキュメントの名前を変更できます。これは些細なことで、問題なく動作しますが、私には理解できない本当に厄介なバグが 1 つあります。ファイルの名前が変更されると、ユーザーが次にドキュメントを保存しようとしたときに、AppKit が (親切に) 警告します。ユーザーが「OK」と言うと、すべてが通常どおり続行されます。これは、アプリケーションの外部の何かがドキュメントを変更した場合には意味がありますが、実際にドキュメント自体によって変更された場合には意味がありません。
コードは次のようになります。
ドキュメントに新しい URL と変更日を明示的に設定するだけで十分だと思う人もいるかもしれませんが、残念ながらそうではありません。Cocoa は引き続き警告を生成します。
順序を変更してみました (ドキュメントに新しい URL を設定し、ファイルの名前を変更します) が、これは役に立ちません。
CocoaDev の古い投稿でユーザーが提案した修正も試しました。
ただし、これでも警告は止まりません。文書化された API を使用してこれを行う適切な方法が必要だと思います。ユーザーがプロジェクト ツリーのファイルをクリックして別の名前に変更した場合、Xcode はどのように処理しますか。ユーザーが実際に名前変更を実行したため、名前変更についてユーザーに警告しません。
私は何をする必要がありますか?
cocoa - NSURL → NSImage → NSImageView
AppKit と NSDocument で遊んでいますが、なぜこれが機能しないのですか?:
これを書いたばかりで、画像はnilではありませんが、画像をロードすることはなく、サイズは常にゼロです。これは、ファイルをドキュメントに読み込むために実装する必要がある正しい方法ですか? 他のライブラリを使用して他のファイルを読み取る予定であるため、データ (NSData) ではなくパスが必要です。
今、PNG、JPGを読み込もうとしていますが、どれもうまくいきませんでした。;(
前もって感謝します。
objective-c - 奇妙なloadNibNamedの動作
私はドキュメントベースのCocoaアプリを持っています。実行時に、を呼び出してバンドルから追加のペン先をロードします[NSBundle loadNibNamed:@"inspectorNIB" owner:self]
(ここself
で、はですNSDocument
)。
不思議なことに、バンドルのロードが成功している間、NSDocument
'sawakeFromNib
メソッドが再度呼び出され、不要な2番目の初期化が発生します。これは予想される動作ですか?どうすれば抑制できますか?
objective-c - ドキュメント「無題」は「無題」として保存できませんでした
この Apple ウォークスルーを使用してドキュメント ベースの Mac アプリを開発しようとしていますが、ファイルの保存に問題があります (最終ステップ)。ファイルを保存しようとした後に発生するエラーは次のとおりです。ドキュメント「無題」は「-新しいファイル名は使用しようとしています-」として保存できませんでした
私はグーグルで検索しましたが、このエラーの結果は見つかりませんでした。コードを再確認しましたが、チュートリアルではすべてがかなりしっかりしているようです。ここで何がうまくいかないのかについて、誰かが直感を持っているかどうか疑問に思いました.
私のメインクラスのコードは次のとおりです。
ヘッダー ファイル:
iphone - iPhoneのドキュメントディレクトリ内の2つのフォルダに同じ名前のファイルを入れることはできますか?
ドキュメントディレクトリ内に別の名前でフォルダを作成できることを確認し、理解しました。
私の疑問は、folder1 と folder2 の 2 つのフォルダーを作成したことです。各ディレクトリ内に rock.pdf という名前のファイルを持つことは可能ですか? 両方のファイルは異なりますが、同じ名前になります。
cocoa - QTKit を使用して編集した後に QTMovie を適切に保存するにはどうすればよいですか?
NSDocument アーキテクチャを使用するアプリケーションで QTMovie に小さな編集を加えています (以下に示すようにトラックを追加するなど)。編集後、元のファイルに保存したい。ただし、「ファイルがビジーです」というエラーが表示され続けます。これは、ファイルの処理で行った見落とし、または NSDocument の使用方法の失敗によるものだと思います。どんなヒントも役に立ちます!関連するコード(の一部)は次のとおりです。
最初に NSDocument でムービーをリリースする必要がありますか? それを行う「適切な」方法は何ですか?覚えておいてほしいのは、私は必ずしもこのドキュメントを終了しているわけではなく、これを閉じているわけではないということです. この操作を終了したばかりで、ディスク上のファイルに変更を反映させたいと考えています。[movie updateMovieFile] を使用したいのですが、その呼び出しではムービーが平坦化されないようです。ファイルに外部参照を入れたくありません。
macos - 別のクラスから MyDocument の IB インスタンス化された NSBox にアクセスしますか?
Hillegass の著書 Cocoa Programming for MAC OS X のビュー スワッピング コードから始めました。代わりに、ViewController のテーブルの行を使用して、テーブルを生成した ViewController から MyDocument.m の displayViewController を呼び出して、ViewController を交換しようとしています。
私が抱えている問題は、MyDocument.m の NSBox 内でビューを交換できるように、MyDocument.nib でインスタンス化された Interface Builder NSBox に沿って送信する必要がある別の ViewController から displayViewController を呼び出すときです。これを行うには、Interface Builder でインスタンス化された MyDocument.nib の NSBox に、別の ViewController からアクセスできるようにする必要があります。
別のViewControllerからMyDocument.nibのInterface Builderインスタンス化されたNSBoxにアクセスする方法を知っている人はいますか?
編集:
私はいくつかの進歩を遂げました。ビューの階層は次のとおりです。
次のようにして、最上位の Window と現在の ContentView を取得できました。
しかし、ContentView 内にある NSBox を取得する方法がまだわかりません。私は次のことを試しましたが、うまくいきませんでした:
誰にもアイデアがありますか?
cocoa - これには NSViewController を使用する必要がありますか?
複数のウィンドウに頼らずに、アプリケーションに 1 つのドキュメントと複数の画面を持たせたいと考えています。これを達成するための最良の方法は何ですか?コントロールのセットを表示する NSViewController で始まり、そのビューを別の NSViewController に交換する単一の NSPersistentDocument を使用することを考えています。
私の質問は: これは NSViewControllers の正しい使い方ですか? それはできますか?両方の答えが「はい」の場合、ドキュメント内のビューを別のビューと交換するにはどうすればよいでしょうか?
objective-c - Cocoa/Obj-C - アプリケーション アイコンにドラッグするとファイルが開く
現在、アプリのインターフェイスにファイルを開くことができるボタンがあります。ここに私のオープンコードがあります:
私のapp.hで:
私のapp.mで:
アプリケーション アイコンのドラッグ アンド ドロップで開くことができるようにコードを編集するにはどうすればよいですか?
注: .plist ファイルを編集して "xml" の行を追加しましたが、何も変更されず、ファイルをアイコンにドロップするとエラーが発生しました。
注 2: "File -> Open..." を selectFile にリンクしました: 私のコードを参照して
ください 注 3: 私のアプリはドキュメントベースのアプリケーションではありません
ご協力いただきありがとうございます!
ミスキア
core-data - コアデータダーティフラグが設定されていません
少し奇妙な問題を除いて、うまく機能しているコアデータドキュメントベースのココアアプリがあります。
何らかの理由で、フィールドのいずれかに変更を加えた場合、メニュー/ウィンドウがそれを認識していないようです。赤い閉じるボタンは黒い「ダーティ」インジケータを取得せず、[ファイル/保存]メニュー項目は有効になっていません。ただし、(command-Qを使用して)アプリケーションを閉じようとすると、変更を保存するかどうかを尋ねるポップアップが表示されます。
ドキュメントのダーティフラグが設定されているようですが、ウィンドウ/メニュー項目がそれに反応していません。なぜそうなるのか、どこを見ればいいのか知りたいです。私のウィンドウがManagedObjectContextを知らないことに関係しているのではないかと思います...
わずかに異例の動作は、ドキュメントのmakeWindowControllersメソッドがオーバーライドされ、ドキュメントの[self addWindowController:xxx]メソッドの呼び出しを使用してウィンドウコントローラーを追加していることです。私のウィンドウコントローラーはNSWindowControllerからサブクラス化されているため、ManagedObjectContextを保持するために各ウィンドウコントローラーに独自のインスタンス変数を追加する必要がありましたが、これがウィンドウ/メニューに渡されていないようです。ここに通常のパターンが何であるかわからない...
とにかく、どんな考えでも大歓迎です。ありがとう