J'ai ajouté un Ceci est mon code (ARC): P> uitoolbar code> avec un
uibarbuttonitem code> comme entréeAccessoryView pour un
uitextview code>. Cela fonctionne bien, mais l'Uibarbuttonitem est touchable à l'extérieur de son cadre, peut-être 50 pixels à l'extérieur à droite. Ce n'est pas grave mais ça m'énerve. Quelqu'un sache pourquoi?
UIToolbar *toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, self.view.bounds.size.height, 320, 44)];
toolBar.barStyle = UIBarStyleBlack;
toolBar.translucent = YES;
UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(doneWriting:)];
[toolBar setItems:[NSArray arrayWithObjects:doneButton, nil]];
self.messageTextView.inputAccessoryView = toolBar;
3 Réponses :
La barre d'outils semble étendre la zone active des boutons au-delà de leurs limites s'il n'y a pas d'autres autres boutons à proximité de la barre d'outils. Les ingénieurs Apple doivent penser qu'il est préférable d'essayer de deviner où l'utilisateur avait l'intention d'appuyer plutôt que de ne pas réagir du tout. P>
Si tel est le cas, pour moi, cela ressemble plus à la programmation «bâclée» ayant le bouton réagir en dehors de ses limites, eh bien.
Dans iOS 6, il semble se comporter comme prévu.
Beau conseil: Si vous souhaitez que le bouton apparaisse à droite au lieu de la gauche, utilisez l'un d'entre eux: initialise la barre d'outils avec: p>
J'espère que cela vous aide ...
UIToolbar* keyboardDoneButtonView = [[UIToolbar alloc] init]; [keyboardDoneButtonView sizeToFit]; UIBarButtonItem* PrevButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:105 target:nil action:nil]; //< UIBarButtonItem* NextButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:106 target:nil action:nil]; //> UIBarButtonItem* doneButton = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStyleBordered target:self action:@selector(doneClicked:)]; UIBarButtonItem* flexSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; UIBarButtonItem *fake = [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStylePlain target:nil action:nil] ; [keyboardDoneButtonView setItems:[NSArray arrayWithObjects: PrevButton,fake, NextButton,fake,flexSpace,fake,doneButton,nil] animated:YES];
Solution très intéressante, celle-ci a travaillé pour moi, merci.