J'essaye de changer la propriété enabled d'un UIBarButtonItem
après avoir fait quelques trucs dans un NSThread
. Après avoir appuyé sur le bouton, j'ai mis l'option sur NON, puis j'effectue la partie filetée et à la fin, j'essaie de réactiver le bouton. Assez basique.iPhone UIBarButtonItem setEnabled dans NSThread
D'une manière ou d'une autre ceci échoue, cependant je suis capable de changer n'importe quelle autre propriété de l'UIBarButtonItem correctement (par exemple le titre).
Qu'est-ce que je fais mal ici?
@interface myViewController : UIViewController <UITableViewDataSource, UITableViewDelegate> {
IBOutlet UIBarButtonItem *myButton;
}
@property (nonatomic, retain) IBOutlet UIBarButtonItem *myButton;
- (IBAction)mysub:(id)sender;
@end
@implementation myViewController
@synthesize myButton;
- (IBAction)mysub:(id)sender {
[myButton setEnabled:NO];
[NSThread detachNewThreadSelector:@selector(mysub_threaded) toTarget:self withObject:nil];
}
- (void) mysub_threaded {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
… do threaded stuff
[myButton performSelectorInBackground: @ selector(setEnabled :) withObject: [NSNumber numberWithBool:YES]];
[pool drain];
}
setEnabled: prend un BOOL, pas un NSNumber *. –
tc. Alors, quelle devrait être la bonne façon de passer l'argument BOOL à performSelectorOnMainThread, au lieu d'utiliser NSNumber? – Tomas