0

NSPopUpButtonのメニューでどの基準が選択されているかを判断するにはどうすればよいNSRuleEditorですか? 中身ruleEditorRowsDidChange(_:)

各行の基準を追跡して変更を手動で処理することもできますが、もっと簡単な方法があるはずです。

ルール エディターのデリゲートで基準のNSMenuItem代わりに aを返そうとしました。次に、メニュー項目でターゲットとアクションのプロパティを設定します。これにより、ルール エディターでメニュー項目 (条件) が選択されたときにメソッドを呼び出すことができます。また、各メニュー項目のターゲットは基準自体であるため、どの基準がアクション メソッドをトリガーしたかがわかることも意味します。ただし、メニュー項目にターゲットとアクションのプロパティを設定すると、ルール エディターがメニュー項目に設定したプライベート ターゲットとアクションの値が上書きされます。これは、ルール エディターで基準を選択した後、設定したターゲット/アクションが起動するが、選択の変更がルール エディターに反映されないことを意味します。Stringvalue

NSPopUpButton私の現在の解決策は、基準としてを返しdisplayValue(から継承しているNSViewため)、ボタンのアイテムとターゲット/アクションを手動で管理することです。これはうまく機能しますが、ルール エディターのデリゲートに依存するのではなく、単一の基準で複数の値を管理することにより、ルール エディターの設計が少し壊れているように感じます)。

私はこれについて間違った方法で進んでいますか?ルール エディター内で条件が選択されたときに条件固有のコードを実行する簡単な方法はありますか?

ありがとう!

4

1 に答える 1

1

- (void)setCriteria:(NSArray *)criteria andDisplayValues:(NSArray *)values forRowAtIndex:(NSInteger)rowIndexメニュー項目のアクションを設定し、ルール エディターのアクション コール内で行を更新します。で行を取得できます- (NSInteger)rowForDisplayValue:(id)displayValue

于 2016-12-19T02:49:10.367 に答える