1

2 つのテキスト フィールドと 2 つのセグメント化されたコントロールを含むビューがあります。対応するセグメント化されたコントロールが選択されたときに、各テキスト フィールドを編集可能にしたいと考えています。

私が使用しているアプローチは次のとおりです。

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
if (textField == _textField) {
    if (_segmentedControl.selectedSegmentIndex == 0 ||
        _segmentedControl.selectedSegmentIndex == 1 ||
        _segmentedControl.selectedSegmentIndex == 2 ||
        _segmentedControl.selectedSegmentIndex == 3) {
        return YES;
    } else {
        return NO;
    }
    if (textField == _textFieldTwo) {
        if (_segmentedControlTwo.selectedSegmentIndex == 0 ||
            _segmentedControlTwo.selectedSegmentIndex == 1) {
            return YES;
        } else {
            return NO;
        }
    }

}

}

これは、最初のセグメント化されたコントロールとテキスト フィールドに対して機能しますが、2 番目のセグメント化されたコントロールの状態に関係なく、2 番目のテキスト フィールドは編集可能のままです。

誰が私が間違っているのか教えてもらえますか?

ありがとう

4

2 に答える 2

2

IF が正しくネストされていません。

if (textField == _One){
  if( 0<= selectedIndex < 4) {
      //do something
  } else {
      return no;
  } 
  if (textField == _Two){
      // other stuff
  }
}

if(textFieldTwo) が if(textFieldOne)内にあることがわかりますか?

于 2013-09-09T02:14:32.310 に答える
2

私には単純な論理エラーのように見えます。君の:

if (textField == _textFieldTwo) {

else if本当に最初にあるはずifです。

単純に次のように変更します。

} else if (textField == _textFieldTwo) {

そしてそれは働き始めるはずです。

于 2013-09-06T11:43:31.623 に答える