【问题标题】:How can I decide if switch view value was changed by user interaction or by code in IOS?如何确定切换视图值是由用户交互还是由 IOS 中的代码更改的?
【发布时间】:2013-02-05 18:43:26
【问题描述】:

我的 UI 上有一个切换视图,我想在其值更改时处理该事件。为此,我创建了一个 IBAction 方法来处理值更改事件。到目前为止一切顺利。

我的问题是我无法确定更改是否由 - 代码(它可能发生在我的应用程序中) - 用户交互

我如何确定它是由用户交互还是由代码更改的?

【问题讨论】:

  • 您如何检查正在以编程方式更改的开关?我认为不会调用您的 valueChanged 事件。

标签: ios objective-c switch-statement ibaction


【解决方案1】:

仅通过代码完成时,是否有特定方法可以更改开关值?如果是这样,也许您可​​以使用该方法设置一个布尔值/标志,以便在您需要决定/处理事件时进行检查。

【讨论】:

  • 是的,有,但我认为有一种更直接/内置的方式来做到这一点。例如。一些属性,如事件源。我想按照你的建议实施它,但我认为它已经过时了。
【解决方案2】:

在 Apple ScrollView / ScrollPages Example 他们有一个类似的情况:
他们必须决定事件是由自己(=代码)触发还是由用户触发。
他们只需设置一个变量(在以编程方式调用之前)来区分这两种情况。

【讨论】:

  • 嗯,我认为有一个更精简的解决方案。
  • 是的,它看起来不太好,即使在苹果示例代码中,但只要您不能为该操作设置 userInfo 对象,人们怎么知道?
  • 谢谢亚历克斯,非常友好地回答我,我的失望是关于苹果
  • Apple 已经有一个 sender 对象,但这个 sender 将是按钮。在我的其他一些非 ios 应用程序中,我需要添加“原因”信息。在您的情况下 sender 将是 UI 对象,但 cause = "programm";在大多数情况下,不需要这样的原因。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-19
  • 2018-05-23
  • 1970-01-01
  • 2012-02-26
  • 1970-01-01
相关资源
最近更新 更多