問題タブ [nswindowcontroller]

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 に答える
31 参照

objective-c - そのウィンドウが閉じられたときに、存在するすべてのデータが確実に消えるようにするにはどうすればよいですか?

ソース リスト項目がほとんどないウィンドウがあります。ここで、ソース リストから各項目を選択すると、そのビューがそのウィンドウに読み込まれます。そのビューには ViewController と modelController があります。それを開くと、いくつかの結果が入力されます。他のソースリスト項目についても同じことが行われます。私の質問は、ウィンドウを閉じて再度開いたときに、ウィンドウに存在するデータが確実にクリアされるようにする方法です。

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

objective-c - NSWindowController をアーカイブ/アーカイブ解除するのは適切ですか?

何が悪いのか理解に苦しむ。NSWindow と NSTextView を持つ NSWindowController があります。その NSWindowControllerとNSWindow (およびそのすべてのコントロール) をファイルにアーカイブしたいと考えています。

次に、同じ NSWindowController と NSWindow とすべてのビューをファイルから解凍したいと思います。しかし、Apple のドキュメントには次のように書かれています。

Note: Although the NSWindow class inherits the NSCoding protocol from NSResponder, the class does not support coding. Legacy support for archivers exists but its use is deprecated and may not work. Any attempt to archive or unarchive an NSWindow object using a keyed coding object raises an NSInvalidArgumentException exception.

重要なのは、encodeWithObject:windowController の場合、これは NSWindow を格納しません。したがって、windowController に対して decodeWithObject を実行すると、NSWindow が読み込まれません。

NSWindowController / NSWindow とそのすべてのコントロールをアーカイブ/アーカイブ解除するにはどうすればよいですか? 私は何が欠けていますか?

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

objective-c - さまざまなビュー / nib 間でバインディング用のオブジェクト (具体的には NSDocument) を共有する

Xcode 4 を使用して OSX (Lion) 用のアプリケーションを作成しています。

これとインターネットで少し壁にぶつかることは、これまでのところ特に役に立たないことが証明されています.

MainMenu.xib とドキュメント ウィンドウだけでなく、ドキュメントも定義しています。もちろん、ドキュメント ウィンドウは、ドキュメントが読み込まれたり作成されたりしたときに作成されるものであり、関連するデータにアクセスできます。

このプロジェクトで可能な限り Cocoa Bindings を利用したいので、私の質問は次のとおりです。

別のビューを作成した場合 (リンクされた Nib を持つ NSViewController としましょう); ドキュメントのデータへのアクセスを許可するにはどうすればよいですか?

ドキュメント クラスに #import を追加しようとしましたが、ドキュメント クラスの #import をビュー コントローラーに (作成するために) 追加すると問題が発生します - 不明な型のコンパイル エラーが発生します。

また、暫定的なオブジェクトを渡すルートをたどりました (さらに、ビュー コントローラーを作成した後にゲッター/セッターにアクセスすることさえあります)。確かに、より良い、よりクリーンな方法があるに違いありませんか?

アプリケーションには NSWindowController (デフォルト) が 1 つだけあり、それは XCode の非コア データ ドキュメント ベースのアプリケーション テンプレートのバニラです。

助けてくれてありがとう、クリント

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

objective-c - NSMutableArray を NSWindowController に渡す

だから私は次のように NSWindowController を作成しています:

次に、このオブジェクトに、NSTableView に使用する配列を渡します。

そのオブジェクトが作成されると、新しく作成されたオブジェクトのアクションとアウトレットをリンクするという基本的なことを行う方法がわからないことに気付きます。xib でオブジェクトを作成し、メソッドをリンクすると、アクションを実行できますが、xib が NSWindowController の別のインスタンスを作成したため、配列にアクセスできません。配列も渡します。

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

objective-c - インスタンス変数としてのNSMutableArray

NSMutableArrayであるインスタンス変数があります

NSMutableArrayは、次のメソッドを使用して設定されます(このオブジェクトを初期化したオブジェクトから呼び出されます)。

NSLogは、そのメソッドが実行されるときに配列の内容を表示します。

しかし、このインスタンス変数を使用する私のメソッドでは、それはもはや初期化されていないようです

この時点で、次のNSLogが表示されます。

aBufferが(自動?)リリースされたことを私に示すのはどれですか?

なぜこれがこれを行うのか、何か考えはありますか?最初は、2つの異なるオブジェクトがあると思いました。1つは、元のコントローラーからNSWindowControllerを初期化して作成したものです。

そして、nibがロードされたときに作成されたもので、同一ですが異なるオブジェクトですが、重複したNSLogが表示されなくなったため、現在はそうではないと思います。したがって、NSMutableArrayの基本的なメモリの問題だと思いますか?

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

macos - 子ウィンドウが正しく追加されない

OS X アプリケーションのメイン ウィンドウの下部にセカンダリ ウィンドウを追加しようとしています。最終的には、トグル ボタンが押されたときにウィンドウの下からアニメーション化されるようにすることを期待しています。私が知る限り、SDK でこれを行う最善の方法は、- [NSWindow addChildWindow:ordered:]. しかし、その関数を呼び出すと、セカンダリ ウィンドウは表示されますが、子ウィンドウとして追加されません。ボタンを押したときに呼び出される関数は次のとおりです。

(最初に表示されるようにしているので、まだ閉じるコードを追加していません。)

そして、コンソールへの出力は次のとおりです。

ウィンドウが子として追加されない理由と、これを修正するためにできることを誰かが知っていますか?

役立つ可能性のある追加のコンテキストは、ウィンドウ自体とタイトル バーの両方の背景として画像を使用してカスタム ウィンドウを描画していることです。私が修正しているコードはhttp://cocoawithlove.com/2008/12/drawing-custom-window-on-mac-os-x.htmlにあります。

ありがとうございました!

編集:関数をオーバーライドして、- [NSWindow addChildWindow:ordered:]見つけた情報をログに記録しようとしましたが、ウィンドウ自体が関数に渡されていないことがわかりました。うまくいけば、これは誰かが問題を見つけるのに役立ちます!

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

objective-c - プログラムで nib を開くと NSUserDefaults が機能しない

起動時に表示されるウィンドウと NSUserDefaults は、最初のウィンドウでうまく機能します。このコードを使用して、同じ nib ファイルをプログラムで再度開くと、次のようになります。

NSUserDefaults の取得に失敗します。の値を取得します(null)。私は次のようにデフォルトを読みました:
[[NSUserDefaults standardUserDefaults] valueForKey:@"myKey"];

次のように書きます。
[[NSUserDefaults standardUserDefaults] setValue:@"myValue" forKey:@"myKey"];

私は何を間違っていますか?値を設定してアプリケーションを再起動したら、プログラムを再度開きます。ロードされたペン先ウィンドウは失敗します!

NIBファイルが接続されているクラスからプログラムで開いたこのウィンドウを開きます->ユーザーがボタンを押すと、2番目のウィンドウが開きます!

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

objective-c - Cocoa:コントローラーのwindowDidLoadでウィンドウを取得します

NSWindowControllerはこのコードを持っています:

NSAssert失敗します。

なんで?

どうすればウィンドウを取得できますか?

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

cocoa - Mac OS XのshowWindowの問題:NSWindowが1回だけ表示される

Mac OS Xプログラムがステータスバーにのみ表示され、設定ウィンドウを表示する必要があります。私はこのIBActionを持っています:

applicationDidFinish Lauchingには、次のものがあります。

クラスヘッダー:

問題は、設定ウィンドウが1回だけ表示されることです。私がそれを閉じるとき、それはもう二度と現れません。

何が問題なのですか?