MFMailComposeViewController не имеет кнопки «Готово», поскольку предполагает, что вы будете использовать эту кнопку в качестве клавиши возврата (для создания новой строки).
Если вы действительно хотите изменить кнопку на«Готово», есть только один способ сделать это:
- Создать новый MFMailComposeViewController.
- Перечислять через [[mailComposer view] subviews].
- Проверьте каждое подпредставление (и подпредставления подпредставлений, если необходимо).
Когда вы нашли UITextView, который является телом, выполните следующее:
// Get the UITextView from subview inspection
UITextView *textView;
// Declare this instance variable in your class @interface
id <UITextViewDelegate> originalTextViewDelegate;
// Get the original delegate
originalTextViewDelegate = [textView delegate];
// Override the delegate
[textView setDelegate:self];
// Set the return key type
[textView setReturnKeyType:UIReturnKeyDone];
Вернуть YES для -textViewShouldEndEditing.Реализуйте ВСЕ методы UITextViewDelegate и вызовите originalTextViewDelegate (вроде как вызов «super» для подкласса).
- (BOOL)textViewShouldEndEditing:(UITextView *)textView
{
[originalTextViewDelegate textViewShouldEndEditing:textView];
// Important: return YES, regardless of originalTextViewDelegate's response
return YES;
}
- (void)textViewDidChangeSelection:(UITextView *)textView
{
[originalTextViewDelegate textViewDidChangeSelection:textView];
}
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
return [originalTextViewDelegate textView:textView shouldChangeTextInRange:range replacementText:text];
}
// etc
Это должно работать, но без гарантий.Надеюсь, это поможет!: D