問題タブ [nslevelindicator]

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 投票する
0 に答える
304 参照

objective-c - CoreData との NSTableView バインディングと objectValueForTableColumn (DataSource デリゲート) の使用

私はNSTableView2 つの列を持っています。最初に (テキスト セルを使用して) Core DataエンティティNSArrayController.arrangedObjects.someKeyへのバインドを介してデータを取得します。大丈夫。

しかし、2 番目の列はNSLevelIndicatorCell(IB のオブジェクト ライブラリのレベル インジケータ セル) です。NSArrayController(someKey.@count)で最大値を設定します。そして、いくつかの関数が実行されたときに現在の値を設定したいと思います。

upd: また、「tableView:willDisplayCell:forTableColumn:row:」デリゲート メソッドで現在の値を設定する方法も知っています。しかし、これでは十分ではありません。関数の2番目の列の現在の値をどのように更新しますか? tableView のポインター (または rowPointer) をこの関数に送信し、必要なセルのポインターを見つけて SetValue: メソッドを使用しますか?

の代替手段は何tableView:objectValueForTableColumn:row:ですか?

エンティティを変更して、「サブセクションの最大数」や「現時点でダウンロードおよび処理された合計」などの新しい数値属性を作成したくありません。

質問:テーブルビューで既存のバインディングを使用し、NSLevelIndicatorCell の現在の値を設定するにはどうすればよいですか?

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

swift - カスタム NSLevelIndicator に割り当てられた値が表示されない

NSLevelIndicatorその中に文字列値を表示できるカスタムを作成しました。以下はそのコードです。これをストーリーボード OSX アプリでテストしたところ、うまく機能しました。

ここに画像の説明を入力

今、メニュー バー アプリで同じコントロールを使用しようとしています。これがそのビューのレイアウトです。

ここに画像の説明を入力

メニュー オブジェクトのコード。

レベル インジケーターを持つビューのコード。

問題は、カスタム レベル インジケーターのテキストが表示されないことです。レベルインジケーターには、ある種の暗いオーバーレイがあります。

ここに画像の説明を入力

なぜこれが起こっているのかわかりません。私の実際のアプリでは、このインジケーターの値は、バックグラウンド スレッドで実行されるネットワーク リクエストを介して定期的に更新されます。そのため、特に関数内のメイン スレッドで UI を更新しupdate()ます。クロージャー内のコードを取り出して、テストするためだけに外に出しましたが、それでも機能しません。問題はtextプロパティの値を割り当てることでありdoubleValue、レベル インジケーターの値は適切に更新されますが、テキストは更新されないことがわかります。私は今ちょっと困惑しています。

どんな助けでも大歓迎です。ここにもデモプロジェクトをアップロードしました。