この InputAccessoryView をテキストビューに表示すると、正常に動作します。しかし、accessoryview の shareButton をクリックし、キャンセルを押して書き込みを続行すると、accessoryview は空になります。まだツールバーとして表示されますが、すべてのボタンがなくなっています。ここで何が間違っていますか?
- (BOOL)textViewShouldBeginEditing:(UITextView *)textView {
UIToolbar *toolbar = [[UIToolbar alloc] init];
[toolbar setBarStyle:UIBarStyleBlackOpaque];
[toolbar sizeToFit];
UIBarButtonItem *shareButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:@selector(shareIt:)];
UIBarButtonItem *flexButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
UIBarButtonItem *doneButton =[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(resignKeyboard)];
NSArray *itemsArray = [NSArray arrayWithObjects:shareButton, flexButton, doneButton, nil];
[toolbar setItems:itemsArray];
[_textView setInputAccessoryView:toolbar];
return YES;
}
これがメソッド shareIt です。
- (void)shareIt:(id)sender {
NSArray *activityItems;
activityItems = @[_textView.text];
UIActivityViewController *activityController = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
[self presentViewController:activityController animated:YES completion:nil];
NSLog(@"buttonCalle");
}