【问题标题】:How to know or retrieve the sender id如何知道或检索发件人 ID
【发布时间】:2010-07-23 02:33:17
【问题描述】:

我有以下方法

-(IBAction)back:(id)sender {

}

并且希望能够知道发件人 ID。

例如如果有多个按钮链接到此方法,我想知道按下了哪个按钮。

【问题讨论】:

    标签: iphone objective-c uibutton


    【解决方案1】:

    只需在switch语句中使用标签属性,继承自UIView,它是一个NSInteger,或者使用if条件。

    tag 属性可以在你的代码中设置,也可以通过 InterfaceBuilder 设置。

    【讨论】:

      【解决方案2】:

      [发件人标签]

      我不知道你所说的“id”是什么意思(“sender”是一个 id,实际上是一个 NSObject *),但你可以使用标签。您必须事先在 Interface Builder 中或以编程方式设置标签。

      【讨论】:

        【解决方案3】:

        如果您为界面中的按钮设置了 IBOutlets,那么您可以简单地将发送者与这些按钮进行比较。

        如果你有,那在你的接口定义中

        ...
          (IBOutlet) UIButton *button1;
          (IBOutlet) UIButton *button2;
        ...
        

        在你的实现中你有:

        - (IBAction) buttonPressed: (id) sender
        {
          if (sender == button1) {
            ....
          }
          else if (sender == button2) {
            ...
          }
        }
        

        就个人而言,我更喜欢为每个按钮使用不同的操作方法,然后它们都可以为常见的事情调用一个通用的例程。但是,对于简单的项目,上述方法将起作用。

        -J

        【讨论】:

          【解决方案4】:

          将每个按钮的 tag 属性设置为唯一整数(在 IB 中或以编程方式)并在您的操作方法中打开它。

          【讨论】:

          • @user397363:他说“switch on it”,意思是检查标签并根据标签做不同的事情。
          猜你喜欢
          • 1970-01-01
          • 2012-11-14
          • 1970-01-01
          • 2010-10-19
          • 2021-10-10
          • 2021-04-10
          • 1970-01-01
          • 2022-06-11
          • 1970-01-01
          相关资源
          最近更新 更多