【问题标题】:Can a uibutton have an outlet and an action at the same time?一个uibutton可以同时有一个outlet和一个action吗?
【发布时间】:2012-12-20 14:33:33
【问题描述】:

我有 2 个UIButtons 使用 switch 语句更改其文本标签(仅出于测试目的完成了第一种情况):

switch (_itemNumber)
{
    case 0:
        [_phoneButton setTitle:@"201-612-5480" forState:UIControlStateNormal];
        [_emailButton setTitle:@"aacenter@bergen.edu" forState:UIControlStateNormal];
        self.title = @"Acdmc. Adv. Center";
        break;

    default:
        break;
}

所以当UIButton被按下时,将会执行一个动作:

- (IBAction)phoneButtonAction:(id)sender {
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:@"tel://%@",_emailButton.titleLabel.text]]];
}

- (IBAction)emailButtonAction:(id)sender {
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mailto://devprograms@apple.com"]];
}

更改文本标签有效,但无效。 是因为每个UIButton 只能有一个出口或一个动作吗? 如果是这样,我怎样才能设法执行所需的操作?

【问题讨论】:

    标签: objective-c uibutton action outlet


    【解决方案1】:

    mailto:tel: URL 方案在模拟器上不起作用。仅设备。

    上一个:

    您是否向 UIButtons 添加了任何操作?

    [_phoneButton addTarget:self
                     action:@selector(phoneButtonAction:)
           forControlEvents:UIControlEventTouchUpInside];
    [_phoneButton addTarget:self
                     action:@selector(emailButtonAction:)
           forControlEvents:UIControlEventTouchUpInside];
    

    【讨论】:

    • - (IBAction)phoneButtonAction:(id)sender { [[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:@"tel://%@",_emailButton.titleLabel.text] ]];
    • - (IBAction)emailButtonAction:(id)sender { [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mailto://devprograms@apple.com"]];
    • 你是说你已经在界面生成器中设置了这些操作吗?我可以看到您在代码中定义了操作。我在问您是否已对 UIButtons 进行编程以发送这些操作...
    • 但是你是说这些动作没有被调用?
    • 他们应该,因为所有的连接都在那里,但是当我运行模拟器并按下两个按钮中的任何一个时,没有任何反应。
    猜你喜欢
    • 2011-02-18
    • 2012-07-18
    • 1970-01-01
    • 2019-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多