根据UISwitch位置更改UITextView的行为

时间:2016-02-11 22:37:36

标签: ios uitextview uiswitch

我有一个UITextView,我附加了委托协议 textViewDidChange 来执行不同的操作。

现在我想在我的UISwitch为“ON”时附加此Delegate方法。我怎么能这样做?

由于

2 个答案:

答案 0 :(得分:2)

在您的委托方法中,您可以将所有代码放在if语句中,并说if switch.on {...。如果交换机的on属性设置为true,则它将执行其余代码。否则它就会跳过它。

答案 1 :(得分:1)

听起来只有在开关打开时才需要textViewDidChange:。否则,它不应该开火。

我不建议设置和取消设置委托以完成此操作。

相反,你可以摆脱这种方法:

- (void)textViewDidChangeSelection:(UITextView *)textView {
    if (!self.switch.isOn) {
        return; // bail out
    }
    // your "different actions" code
}

或者,根据您的风格,您可以执行以下操作:

- (void)textViewDidChangeSelection:(UITextView *)textView {
    if ([self shouldRespondToChangeInTextView:textView])
        [self respondToChangeInTextView:textView];
    }
}

- (BOOL)shouldRespondToChangeInTextView:(UITextView *)textview {
    return self.switch.isOn;
}

- (void)respondToChangeInTextView:textView:(UITextView *)textView {
    // your "different actions" code
}