菜鸟教程小白 发表于 2022-12-13 08:55:34

iphone - 如何以编程方式判断 IBAction 是否已被代码或用户操作调用


                                            <p><p>如何以编程方式判断 IBAction 是由代码调用还是由用户操作调用。</p>

<p>例如
我有一个方法,<code>-(IBAction)som​​eMethodWithIts:(id)sender</code>
我已将其链接到 UISegmentedControl 上的 valueChanged。</p>

<p>可以调用,</p>

<ol>
<li>用户不断变化的分割</li>
<li>在代码中设置 selectedIndex</li>
<li>调用 <code>;</code></li>
</ol>

<p>有没有办法区分调用是否来自第一种方式? </p>

<p>干杯</p>

<p>山姆</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>如果您可以将 <code>nil</code> 作为发送者(这是传统的)传递并使用它来指示它是通过编程方式发送的,那没关系。但是我认为其他任何东西都太脆弱了,你应该像这样分解代码:</p>

<pre><code>- (void)someMethod {
// stuff shared by everyone
}

- (IBAction)someMethodWithIts:(id)sender {
// stuff specific to IBAction
;
}
</code></pre>

<p>如果你真的想要一个发件人,那么你可以这样做:</p>

<pre><code>- (void)someMethodWithIts:(id)sender triggeredByUser:(BOOL)isUser {
}

- (IBAction)someMethodWithIts:(id)sender {
;
}
</code></pre>

<p>但一般来说,如果您希望 IBAction 不同于编程更改,则不要将编程更改连接到 IBAction。</p></p>
                                   
                                                <p style="font-size: 20px;">关于iphone - 如何以编程方式判断 IBAction 是否已被代码或用户操作调用,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/7155423/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/7155423/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: iphone - 如何以编程方式判断 IBAction 是否已被代码或用户操作调用