Objective C comparar UIButton if (remetente == botão)

votos
1

Ei, eu estou tentando obter o botão no UIControlEventTouchUpInsideouvinte. Eu costumava fazer isso com etiquetas mas eu fiquei doente de isso agora como eu posso fazer tudo isso no Android simplesmente fazendo algo parecido arg0==button.

Eu coloque o seletor de como a

[button addTarget:self action:@selector(actionUp:) forControlEvents:UIControlEventTouchUpInside];

Então neste método

- (IBAction)actionUp:(id)sender
{

    UIButton *b = (UIButton *)sender;

    if(b==button){
        NSLog(@yeeeee);
    }
}

nada acontece, os dois objetos be buttonsão quase os mesmos, mas referem-se a um outro endereço na memória (como com 2 cordas comparação com ==).

b definitivamente recebe o botão direito, como eu posso fazer

[b setBackgroundImage:[UIImage imageNamed:@image] forState:UIControlStateNormal];

Que aborda o botão direito.

Então o que eu posso fazer?

EDIT: colado os métodos errados, muito por isso (erro persistir tho, eu só renomeado-los rapidamente para o cargo)

EDIT RESOLVIDO: isEqual: trabalhou para mim. O que é estranho é que após a reinicialização mesmo == trabalhou novamente. Eu limpei o projeto antes, mas isso não ajudou, mas reiniciar meu Mac fez 0o Graças.

Publicado 24/09/2015 em 16:38
fonte usuário
Em outras línguas...                            


2 respostas

votos
1

você pode usar

if ([sender isEqual:button]) {
    NSLog(@"yeeeee");
    UIButton *b = (UIButton *)sender;

    [b setBackgroundImage:[UIImage imageNamed:@"image"] forState:UIControlStateNormal];
}
Respondeu 24/09/2015 em 17:18
fonte usuário

votos
0

Melhor com

   if ([sender isKindOfClass:[UIButton class]])
...
Respondeu 17/05/2017 em 14:52
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more