問題タブ [cocoa-bindings]
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.
cocoa - コアデータの価値をアップデート
簡単な在庫チェック プログラムを作成しようとしていますが、コア データにバインドされたテーブル ビューがあります。テーブルには、モデル、価格、および在庫数の 3 つの列があります。
この下に NSTextField と NSButton があるので、ユーザーは購入したい数量を入力できます。ユーザーが「カートに追加」をクリックすると、プログラムは「在庫数」列の値を取得する必要があります。選択した行を選択し、NSTextField に入力された値を差し引くと、在庫が十分にない場合は明らかにエラーが返されます。同時に、必要な行、モデル、価格、および数量全体を「請求書」に追加する必要があります。
私の質問は次のとおりです。選択した行の数量フィールドの値を取得し、操作して、テーブルに再挿入するにはどうすればよいですか?
または、Core Data を直接編集する必要がありますか? そして、どうすればそれについて行くでしょうか?
どうもありがとう、マイケル
cocoa - 列挙されたプロパティをバインドする最もクリーンな方法は何ですか?
列挙型の各値の項目を持つメニューがあります。
メニュー:
列挙型:
プロパティ:
これを配線する最もクリーンな方法は何ですか? 私には 2 つのアイデアがありますが、どちらも不十分だと思います。
1 番目のアイデア: 各値 ( など) のプロパティを作成しますsortMethodIsDueDate
。setSortMethodIsDueDate:
これらのプロパティは呼び出しsetTaskSortMethod:
て呼び出しますvalueDidChange:@"sortMethodIsDueDate"
。その後、メニュー項目はこれらのプロパティにバインドされます。これは大変な作業のようです。
2 番目のアイデア: 各メニュー項目を に接続してから、メニュー項目-(IBAction)updateSortMethod:(id)sender
を繰り返し、 に応じて値を設定しますsender
。このアプローチはtaskSortMethod
、コードの別のセクションによって が変更されるまでは問題ありません。変更された時点で、メニューを と同期させるためにコードを追加する必要がありますtaskSortMethod
。
VとCの分離が優れているため、最初のアプローチに傾いています。
より良いアイデアはありますか?
cocoa - Cocoa で Bindings+CoreData を使用して iTunes スタイルの Source-List を実装するにはどうすればよいですか?
例として、私が Cocoa で iTunes クローン アプリを作成していたとしましょう。これは CoreData に支えられています。簡単にするために、音楽、映画、ラジオなどを含む「ライブラリ」という 2 つの「セクション」があるとします。そして、ユーザーが生成したプレイリスト (スマート プレイリストではなく単なるダム リスト) を保持する「プレイリスト」と呼ばれる 2 つ目のセクションがあります。 .
したがって、SourceList 自体は通常、 で実装されます。これNSOutlineView
は一般的に簡単です。
ソース リストのライブラリ セクションには、実際にはユーザーが生成したものは何も格納されず、(本質的に) アプリの "機能" のみが格納されます。プレイリスト セクションには、ユーザーが作成したカスタム リストのみが格納されます。Bindings と CoreData を使用してこれを行うにはどうすればよいでしょうか? プレイリスト セクションをユーザーのデータにバインドし、ライブラリ機能を表示する独自の方法を持つことは可能ですか?
Bindings と AppKit 全般についてはまだ慣れていないので、ご容赦ください。助けてくれてありがとう。追加する必要がありますが、10.6 以降をターゲットにしています。
objective-c - ココアクラッシュのカーボン:NSAutoreleasePoolがリリースされた後のEXC_BAD_ACCESS
Bindingsを使用してPhotoshopCS3プラグイン用のCocoaユーザーインターフェイスを開発しています。(PSはCarbonアプリであるため、CocoaのCarbon)EXC_BAD_ACCESS
モーダルNSWindow
とNSAutoreleasePool
リリースを閉じるとエラーが発生します。
チェックボックスからバインディングを削除し、nibからラジオボタンを削除すると、ウィンドウが無制限に閉じることができ、クラッシュしないため、これはバインディングとnibファイルにあるコントロールビューと関係があると思います。
私は今、Instrumentsで何時間も費やして、どのオブジェクトが早期にリリースされる(または二重にリリースされる)可能性があり、それを見つけることができないかを見つけようとしています。
NSAutoreleasePool
今、私の考えは、 Cocoa Bindingsを使用している間、モーダルウィンドウを実行することについて私が見逃していることがあるかもしれないということです。おそらく、ウィンドウを閉じる前に、すべてのバインディングを「ファイナライズ」して、解放されたオブジェクトにメッセージを送信しないようにするために、何かを行う必要があるようです。
これが私がしていることの基本的なコード例です:
モーダルウィンドウは、次の呼び出しによって閉じられます。
スタックトレースは次のとおりです。
NSZombieEnabledをオンにしても、ダブルリリースされたオブジェクトは表示されませんでした(Photoshop自体から1つありましたが)
すべてのバインディングをオフにすると、クラッシュがなくなります。
何か案は?
cocoa - 複数のエンティティにまたがる Core Data バインディングを使用して、Cocoa で親から子へのドリルダウンを実装する
iTunes ジャンル ブラウザのスタイルで、コア データ モデルへのシンプルなインターフェイスを作成しようとしています。
次の 3 つのエンティティを使用してモデルをセットアップしていますGenre <-->> Artist <-->> Album
。
それぞれを単純に NSTableView に結び付けたいのですが、NSArrayController からの子関係へのアクセスは KVC に準拠していないように見えます。そのため、選択した Genre オブジェクトを ArtistController に伝達するのが困難です。
これどうやってやるの?カスタムサブクラス化なしでIB内でも可能ですか?
後世のために編集: 私はいくつか間違ったことをしていました。
- 子コントローラーは、独自のバインディングを通じて managedObjectContext について知る必要があります。
- 子コントローラーはモードではなく、クラスとして動作する必要があります。
Entity
NSMutableDictionary
- 最後に、子コントローラーはデータを準備しません。
Content Set
バインディングを介して、親から取得します。コントローラー キーselection
と、子に接続するモデル キー パスを使用します。
ふぅ。ブライアンの回答とこの MacResearch チュートリアルの両方が、私のエラー (およびどの部分が正しかったか) を判断するのに役立ちました。
.net - Cocoa Core Data 初心者向けハウツー
私は、Mac OS X 開発に挑戦したいと熱望している .NET 開発者の大衆の 1 人です。現時点では、Cocoa のさまざまな要素を理解しようとしており、Core Data に少し行き詰まっています。
Web で入手できるほとんどのドキュメントとリソースには、モデルから始まり、クラスの生成、ドキュメントベースの UI など、広範なエンド ツー エンドのチュートリアルが含まれていることに気付きました。各ビットに十分に焦点を当てていないか、少なくともそうではないようです。十分な例。
誰かが私を正しい方向に向けることができますか?それはオンラインの資料であろうと本であろうと、さまざまなビットの詳細な指示を与えることができますか? 多分私は.NETの世界で立ち往生しているかもしれませんが、私はまだデータアクセスレイヤーなどの観点から考えています.「CRUD」の基本、永続ストアの設定、エンティティの作成、編集、保存について知りたいです.保存するなど。UI について詳しく説明することなく、基本的なことだけを説明します。また、さまざまなビットを単体テストできるといいですね。
私はここで正しい考え方を身につけようとしていると思います..NET開発者は、Cocoaプログラミングを見ている私たちのような人々のための適切な読み物を知っていますか?
どうもありがとう、ダニー。
cocoa - 子の @sum 値を使用した Cocoa バインディング
IB を使用して子の値の合計を表示するテーブル列を作成しようとしています。これが実行可能かどうかはわかりません。
そのため、Core Data をテーブルにバインドし、「総売上高」の列を親オブジェクトの売上の合計にする必要があります。
私はこのようにしようとしています:
IB のテーブル列バインディングの「モデル キー パス」の「departments.@distinctUnionOfSets.sales.@sum.amount」。
これを行う方法に関する例やチュートリアルはありますか。
objective-c - Interface Builderはボタンを接続しませんが、チュートリアルはそれが機能するはずだと言っています
私はCoreDataを学習しようとしてきましたが、Stack Overflowの質問を参照すると、Cocoa Dev Central(リンク)でCoreDataのチュートリアルを試すことをお勧めします。
チュートリアルではこれまでのところすべてが理にかなっていますが、ステップ16に到達したとき、[+]ボタンをPostsアレイコントローラーに接続できませんでした。私は戻って、途中で各ステップを2回、3回チェックしましたが、どこがオフになっているのかわかりませんが、それでも接続できません。XcodeとInterfaceBuilderの最新バージョンを使用しています(先週それらを再ダウンロードしたばかりです)。これはバージョンの互換性の問題でしょうか?
補遺
問題は、インスペクターでクラスを変更して名前を変更する必要があり、アレイコントローラーのデフォルトのアクションが削除されたことにあるようです。クラスを元に戻してNSArrayController
機能を復元しますが、表示される場所に「アレイコントローラー」として表示されるようになりました。これは、作成者とトピックのコントローラーを修正すると、3つのコントローラーが動作しているときに問題が発生するようです。
cocoa - インターフェイスの代わりにコードがプロパティを変更したときにココア バインディング システムに通知する
カウントダウン タイマーを作成していますが、ティックごとに呼び出す代わりに、オブジェクト コントローラーを介してプロパティをインターフェイス要素-[NSTextField setDoubleValue:secondsRemaining]
にバインドしたいと考えています。secondsRemaining
これの問題はsecondsRemaining
、インターフェイスではなく、ティックごとにコードによって変更されるため、変更がブロードキャストされないように見えることです。
質問には2つの部分があります。
1)これはバインディングを使用する賢明な方法-[NSTextField setDoubleValue:]
ですか、それとも App コントローラーに固執する必要がありますか?
2) バインディングを使用する場合、値が変更されたことをインターフェイスに通知するにはどうすればよいですか?
ありがとう!
cocoa - NSArrayController に相当する Cocoa Touch は何ですか?
Core Data を少し使い始めて、通常の Cocoa アプリケーションでの使用方法を理解しましたが、Cocoa Touch では少し異なるようです。Cocoa Touch でエンティティを表のセルなどのオブジェクトにバインドするにはどうすればよいですか?