0

私はNSPopUpいくつかの値を持っていますが、そのうちの1つは「カスタム」です。カスタムには、ゼロに等しいインデックスまたはタグがありません。タグが4の4番目のアイテムだとしましょう。

「カスタム」の選択を確認するにはどうすればよいですか?この選択に基づいて別のコントロールを表示/非表示にします。この他のコントロールは、「カスタム」を選択した場合にのみ表示されます。うまくいけば、「隠し」バインディングを使用できますが、それを構成するにはどうすればよいですか?

4

2 に答える 2

1

バインディングを使用してこれを行う簡単な方法があるかどうかはわかりませんが、ポップアップのアクションメソッドを使用して簡単に行うことができます。titleOfSelectedItemの値に基づいて、他のコントロールの非表示プロパティを設定するだけです。

-(IBAction)selectionChanged:(NSPopUpButton *)sender {
    if ([sender.titleOfSelectedItem isEqualToString:@"Custom"]){
        self.otherControl.hidden = YES;
    }else{
        self.otherControl.hidden = NO;
    }
}
于 2012-12-12T01:12:26.360 に答える
1

これが解決策です...

ポップアップからの「カスタム」の選択を追跡するために、1つのプロパティ「onOffValue」を作成します。

onOffValueを変更する1つのアクション。

.hで

@property(assign) BOOL onOffValue;
- (IBAction)popUp:(id)sender;

.mで

- (id)init
{
    self = [super init];
    if (self) {
        self.onOffValue=NO;
    }
    return self;
}

- (IBAction)popUp:(id)sender {
    if ([[sender title]isEqualToString:@"Custom"]) {
        self.onOffValue=NO;
    }
    else{
        self.onOffValue=YES;
    }
}

IBで、非表示にするコントロールを選択します-再表示します。

バインディングインスペクターで、非表示オプションでクラスにバインドします(私の場合はAppDelegateです)

モデルのキーパスをに設定しますself.onOffValue

それでおしまい!!!

編集: ここに画像の説明を入力してください

ヘルプのためにファイルをダウンロードできるリンクは次のとおりです...

于 2012-12-12T08:19:31.230 に答える