問題タブ [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.

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

core-data - NSPersistentDocument 内に新しい NSManagedObject を作成すると、元に戻すことが可能な場合でも保存が拒否されます

私は CoreData / NSPersistentDoc アプリを持っています。それは正常に動作します。

MOM に新しいエンティティを追加し、バージョンを更新しました。

ここで、MOC 内にそのエンティティの新しいインスタンスを作成すると、アプリに既に存在する古いエンティティのインスタンスを作成するまで/作成しない限り、[保存] メニュー項目は無効のままになります。

ドキュメントが変更されたことを示すために、タイトルバーの赤いドット ボタンが正しく黒くなりますが、OS X / NSDocument はこれを認識しません。保存することはできません。

何か案は?

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

objective-c - 通知で特定の NSDocument インスタンスを閉じる

次の問題があります。私が構築した小さな IDE で XCode のような「新しいプロジェクト」ワークフローを再現しようとしています。このために、ユーザーが「新しいプロジェクト」を選択したときにドキュメントウィンドウコントローラーによって作成されたウィンドウでモーダルを実行するシートがあります。シートは nib から開始され、いくつかのサブビューを (View Controller を介して) 段階的なアプローチでロードし、新しいプロジェクトを保存するポイントまでプロジェクト (タイプ -> パラメーターなど) を設定します。ここまでは順調ですね。

私が抱えている問題は、保存する前にプロセスをキャンセルしようとしたときです。開いている可能性のある他のドキュメント インスタンス (別名「プロジェクト」) を閉じずに、モーダル シートとドキュメント インスタンスを閉じる方法がわかりません。

私のアプリには、デリゲート、NSWindowController および他のいくつかのコントローラーとニブを介して制御される NSDocument クラスがあります。今のところ、アプリケーション デリゲートに通知ベースのアプローチを実装することを考えていますが、把握できません。

正しい方向に向けていただければ幸いです。

からだに気をつけてね、

トム

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

objective-c - NSDocumentクラスの外部からココアドキュメントを保存する

私のアプリワークフロー中に、新しいモーダルNSWindowがペン先から初期化される瞬間があります。このウィンドウには、[ドキュメントの保存]ボタンがあります。推奨されるアプローチは次のとおりです。

  1. 新しいNSSavePanelを介して、新しくインスタンス化されたモーダルウィンドウに移動し、ここで保存フロー全体をカスタマイズしますか?
  2. 上記のウィンドウのボタンから保存メッセージを受信するメインNSDocumentクラスを使用しますか?もしそうなら、どのようにドキュメントを保存しますか?
  3. 他のシナリオはありますか?
0 投票する
1 に答える
790 参照

cocoa - sqliteデータベースを読み取り/書き込みするNSDocumentベースのアプリケーション

SQLiteデータベースに簡単にアクセスできるようにMacOSX用のアプリケーションを実装しています。ユーザーは同時により多くのファイルで作業できるようになるため、ドキュメントベースのアプリケーションを選択しました。

ほとんどの本とチュートリアルでは、を使用してファイルからそのようなコンテキストでデータを作成および読み取る方法を説明していますNSData。代わりに、私のアプリはその目的のためにSQLiteライブラリに依存する必要があります。これを行うためにオーバーライドする必要があるメソッドは何ですか?

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

objective-c - NSDocument ベースのアプリケーションにおける「グローバル」モデル

NSDocumentユーザーがログインした後にメッセージを送信できるベースのアプリケーションがあります。

これらはユーザーの手順である必要があります。

  • ユーザーがアプリを起動してログインします (資格情報はユーザー モデルに保存されます)。
  • ユーザー user が最初のメッセージを送信します
  • CMD + Nユーザーは別のメッセージをヒットして送信します (再度ログインする必要はありません)。

メッセージ モデルは に配置されますMyDocument.xib。ただし、ユーザー モデルはグローバルな場所に配置する必要があります (MainMenu.xib と言います)。

私の質問は今です:

  1. モデルを MainMenu.xib に配置することは理にかなっており、どのようにアクセスできますかMyDocument.m
  2. シングルトンクラスを作成することなく、これを適切に行うためのより良い方法はありますか?
0 投票する
1 に答える
303 参照

objective-c - 特定の開いている NSDocument にデータを渡しますか?

私はこれに多くの問題を抱えてきました。特定のドキュメントに整数を渡すNSViewController必要があります。NSViewキーウィンドウで表されるドキュメントにデータを渡すことを本当に望んでいますが(それが理にかなっていることを願っています)、私がやっている方法では、開いているすべてのドキュメントにデータを渡します。

Xcode テンプレート (「ドキュメント ベースのアプリケーション」ボックスがチェックされた Cocoa アプリケーション) からドキュメント ベースのアプリケーションを使用しています。これを行う方法はありますか?

本当に恥ずかしいので、コードを投稿しませんでした。基本的に、私は に「getter」メソッドをNSViewController持っていますが、データを返す良い方法はまだ考えていません。最終的に、別の「getter」メソッドを使用してドキュメントにデータを取得させるはずの数百行のコードになりましたが、何もしません。

これに関するドキュメントはありますか?

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

objective-c - NSDocumentのreadFromDataの適切なウィンドウを取得します:::

私はCocoaアプリにNSDocumentクラスを正常に実装しました。これは、データを適切に保存することもできます。しかし、ファイルを開くことに関しては問題があります。

これが私の基本的な設定です。

NSDocument MyFile == xib File => MyFile.xib

処理クラスとしてのNSObjectFileClass

FileClassは、ファイルを圧縮/解凍するクラスであり、MyFile.xibのウィンドウのテキストフィールドに接続されます。保存は、デフォルトのNSNotificationCenterを介して行われます。データには生のNSStringが含まれていないため、このクラスでデータを処理する必要があります。

開く必要のあるドキュメントが3つあるとしましょう。NSDocumentインスタンスが3つあり、NSNotificationsCenterを介してデータを送信しています。3つのNSDocumentがあるため、3つのウィンドウと3つのFileClassインスタンスがあります。受信したデータがこのウィンドウに提案されているかどうかをフィルタリングする可能性がないため、正しいFileClassがデータを受信できれば幸運です。ランダムなFileClassがファイルを処理し、関連するテキストビューのテキストを設定します。したがって、ウィンドウ1は、ウィンドウ3に表示されると考えられていたデータを表示できます。

データフロー:

NSDocument => readFromData =>NSNotificationCenter=>ランダムFileClass=>関連付けられたTextView。

絞り込むには:データを正しいウィンドウにルーティングするにはどうすればよいですか?また、この構成にFileClassを含めるにはどうすればよいですか?

前もって感謝します!

ポール

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

objective-c - NSDocument を使用してリソース フォークに書き込むことはできますか?

ドキュメントと一緒に追加情報を保存したいのですが、バンドルやパッケージを使用できず、ドキュメント自体に保存することもできません。

このアプリケーションはテキスト エディターであり、コードの折り畳みとブックマークの場所をドキュメントと共に保存したいのですが、明らかにこれをコードに直接埋め込むことはできず、見苦しいコメントでコードを変更したくありません。

NSDocument を使用してドキュメントのリソース フォークに情報を格納できますか? もしそうなら、どうすればこれを行うことができますか? 直接書き込む<filename>/..namedfork/rsrc必要がありますか、または使用可能な API はありますか?

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

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

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

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

ありがとう...

0 投票する
0 に答える
205 参照

macos - NSDocument ファイルのリバース エンジニアリング

OS X プログラムでサポートされていないファイル形式を使用しています。を使用していますがNSDocument、残念ながら、ベンダーはフォーマットをサポートしていないか、エクスポートを許可していません。

では、この形式に基づくリバース エンジニアリングの最初のステップは何NSDocumentですか? initWithContentsOfFileこのプログラムは、OS x 10.3の非推奨メソッドを引き続き使用しています。プログラム、データ、および多くのサンプル データにアクセスできます。

プログラムの逆アセンブルに関する最初の作業を行い、フォーマットを修正しました。しかし、あまり進歩していません。逆アセンブルでは何も明らかになりませんでしたが、16 進エディタでファイルを見ると、いくつかのデータ構造と最初の固定ヘッダーの概要がわかりました。