代码之家  ›  专栏  ›  技术社区  ›  jeff

NSInvalidArgumentException“,原因:”-[UILabel视图]:无法识别的选择器发送到实例0x7ffbd0da2680“

  •  0
  • jeff  · 技术社区  · 9 年前

    下面是我得到这个错误的代码。

    UIToolbar *toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0.0f, self.view.bounds.size.height - 44.0f, self.view.bounds.size.width, 44.0f)];
        toolBar.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin;
        [self.view addSubview:toolBar];    
        UIBarButtonItem *people = [[UIBarButtonItem alloc] initWithTitle:@"people" style:UIBarButtonItemStylePlain target:self action:@selector(tap:)];
        UIBarButtonItem *food = [[UIBarButtonItem alloc] initWithTitle:@"food" style:UIBarButtonItemStylePlain target:self action:@selector(tap:)];
        UIBarButtonItem *nature = [[UIBarButtonItem alloc] initWithTitle:@"nature" style:UIBarButtonItemStylePlain target:self action:@selector(tap:)];
        UIBarButtonItem *sports = [[UIBarButtonItem alloc] initWithTitle:@"sports" style:UIBarButtonItemStylePlain target:self action:@selector(tap:)];
        UIBarButtonItem *cats = [[UIBarButtonItem alloc] initWithTitle:@"cats" style:UIBarButtonItemStylePlain target:self action:@selector(tap:)];
        UIBarButtonItem *space = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; 
        UILabel *lbl1 = [[UILabel alloc] init];
        [lbl1 setFrame:CGRectMake(0,5,100,20)];
        lbl1.backgroundColor=[UIColor clearColor];
        lbl1.textColor=[UIColor whiteColor];
        lbl1.userInteractionEnabled=YES;
        [self.view addSubview:lbl1];
        lbl1.text= @"TEST";
        [toolBar setItems:@[space, lbl1, people, food, nature, sports, cats, space]];
    
    1 回复  |  直到 9 年前
        1
  •  1
  •   Dharmesh Dhorajiya    9 年前

    您的错误在这一行,因为您在工具栏中添加了标签。使用此代码

    UIToolbar *toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0.0f, self.view.bounds.size.height - 44.0f, self.view.bounds.size.width, 44.0f)];
    toolBar.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin;
    [self.view addSubview:toolBar];
    UIBarButtonItem *people = [[UIBarButtonItem alloc] initWithTitle:@"people" style:UIBarButtonItemStylePlain target:self action:@selector(tap:)];
    UIBarButtonItem *food = [[UIBarButtonItem alloc] initWithTitle:@"food" style:UIBarButtonItemStylePlain target:self action:@selector(tap:)];
    UIBarButtonItem *nature = [[UIBarButtonItem alloc] initWithTitle:@"nature" style:UIBarButtonItemStylePlain target:self action:@selector(tap:)];
    UIBarButtonItem *sports = [[UIBarButtonItem alloc] initWithTitle:@"sports" style:UIBarButtonItemStylePlain target:self action:@selector(tap:)];
    UIBarButtonItem *cats = [[UIBarButtonItem alloc] initWithTitle:@"cats" style:UIBarButtonItemStylePlain target:self action:@selector(tap:)];
    UIBarButtonItem *space = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
    lbl1 = [[UILabel alloc] init];
    [lbl1 setFrame:CGRectMake(0,64,100,20)];
    lbl1.backgroundColor=[UIColor clearColor];
    lbl1.textColor=[UIColor redColor];
    lbl1.userInteractionEnabled=YES;
    [self.view addSubview:lbl1];
    lbl1.text= @"TEST";
    [toolBar setItems:@[space, people, food, nature, sports, cats, space]];
    

    工具栏项单击事件

    -(IBAction)tap:(UIBarButtonItem*)sender{
        lbl1.text= sender.title;
    }