Je veux effectuer une action lorsqu'un button est en surbrillance et effectuer une autre action lorsqu'il quitte l'état en surbrillance. Aucun conseil?
Vous pourriez utiliser KVO
[button addObserver:self forKeyPath:@"highlighted" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:NULL];
alors
- (void)observeValueForKeyPath:(NSSsortingng *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { if ([@"highlighted" isEqualToSsortingng:keyPath]) { NSNumber *new = [change objectForKey:@"new"]; NSNumber *old = [change objectForKey:@"old"]; if (old && [new isEqualToNumber:old]) { NSLog(@"Highlight state has not changed"); } else { NSLog(@"Highlight state has changed to %d", [object isHighlighted]); } } }
Vous vous souciez uniquement des changements et cela sera appelé chaque fois que l'état change, par exemple si vous bougez select et ensuite avec votre doigt encore en bas glisser à l'extérieur du button
Comme ça?
self.testButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; [self.testButton addTarget:self action:@selector(methodOne) forControlEvents:UIControlEventTouchDown]; [self.testButton addTarget:self action:@selector(methodTwo) forControlEvents:UIControlEventTouchUpInside];