iphone - 如何以编程方式判断 IBAction 是否已被代码或用户操作调用
<p><p>如何以编程方式判断 IBAction 是由代码调用还是由用户操作调用。</p>
<p>例如
我有一个方法,<code>-(IBAction)someMethodWithIts:(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]