Блокировка полей в MFMailComposeViewController

Возможно ли каким-либо образом заблокировать поля в MFMailComposeViewController чтобы пользователь, получатели и т. Д. Не могли быть изменены пользователем? Мне нужна электронная почта, которую пользователь отправляет, чтобы перейти к определенной учетной записи и телу, чтобы соответствовать определенным критериям, поэтому, если пользователь решительно редактирует формат, все может пойти ужасно неправильно. В тот момент, когда тело заполнено данными, которые пользователь входы в текстовые поля и сборщики дат в предыдущем представлении.

В основном я считаю, что было бы просто более профессиональным, если бы поля были заблокированы, а не отображали предупреждение или что-то вроде «Пожалуйста, не редактируйте сообщение», поэтому его не представляет собой серьезная проблема, если поля не могут быть заблокированы, но любая помощь был бы весьма признателен.

One Solution collect form web for “Блокировка полей в MFMailComposeViewController”

Загрузите фреймворк по ссылке ниже. Затем я собрал код, который отправляет электронное письмо с приятным «пожалуйста, подождите». Я прикрепил изображение того, как это выглядит во время его работы (за несколько секунд). Обратите внимание: я не беру на себя ответственность за создание структуры SMTP. Он был загружен из Интернета после его поиска навсегда. Zip-файл, который вы можете скачать, включает в себя оверлейные изображения, которые я создал для отзывов пользователей. Он имеет как @ 2x, так и обычный. Вам нужно будет войти в конструктор интерфейсов и создать ярлык, хотя он говорит «отправка тестового диска ..». Его уже в коде, но я не добавил его из кода. Поэтому вы должны добавить его в IB.

1. Обязательно добавьте фрейм, который вы загрузили в свой проект.

2. Обязательно добавьте рамки CFNetwork в свой проект.

3. Обязательно присоедините имя UILabel «loadLabel» в построителе интерфейса

4. Имя пользователя и пароль, на которые ссылается код, – это SMTP-сервер. Если у вас нет учетной записи gmail и используйте настройки gmail. Если вы не знакомы с настройками gmail google gmail smtp, вы найдете то, что вам нужно.

Найти Framework & Art здесь

Для вашего .h файла обязательно включите:

 //for sending email alert UIActivityIndicatorView * spinner; UIImageView * bgimage; IBOutlet UILabel * loadingLabel; } @property (nonatomic, retain)IBOutlet UILabel * loadingLabel; @property (nonatomic, retain)UIImageView * bgimage; @property (nonatomic, retain)UIActivityIndicatorView * spinner; -(void)sendEmail; -(void)removeWaitOverlay; -(void)createWaitOverlay; -(void)stopSpinner; -(void)startSpinner; 

Для вашего файла .m:

 @synthesize bgimage,spinner,loadingLabel; // add this in ViewDidLoad //set loading label to alpha 0 so its not displayed loadingLabel.alpha = 0; 

все остальное – его собственная функция

 -(void)sendEmail { // create soft wait overlay so the user knows whats going on in the background. [self createWaitOverlay]; //the guts of the message. SKPSMTPMessage *testMsg = [[SKPSMTPMessage alloc] init]; testMsg.fromEmail = @"youremail@email.com"; testMsg.toEmail = @"targetemailaddress@email.com"; testMsg.relayHost = @"smtpout.yourserver.net"; testMsg.requiresAuth = YES; testMsg.login = @"yourusername@email.com"; testMsg.pass = @"yourPassWord"; testMsg.subject = @"This is the email subject line"; testMsg.wantsSecure = YES; // smtp.gmail.com doesn't work without TLS! // Only do this for self-signed certs! // testMsg.validateSSLChain = NO; testMsg.delegate = self; //email contents NSString * bodyMessage = [NSString stringWithFormat:@"This is the body of the email. You can put anything in here that you want."]; NSDictionary *plainPart = [NSDictionary dictionaryWithObjectsAndKeys:@"text/plain",kSKPSMTPPartContentTypeKey, bodyMessage ,kSKPSMTPPartMessageKey,@"8bit",kSKPSMTPPartContentTransferEncodingKey,nil]; testMsg.parts = [NSArray arrayWithObjects:plainPart,nil]; [testMsg send]; } - (void)messageSent:(SKPSMTPMessage *)message { [message release]; //message has been successfully sent . you can notify the user of that and remove the wait overlay [self removeWaitOverlay]; UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Message Sent" message:@"Thanks, we have sent your message" delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil]; [alert show]; [alert release]; } - (void)messageFailed:(SKPSMTPMessage *)message error:(NSError *)error { [message release]; [self removeWaitOverlay]; NSLog(@"delegate - error(%d): %@", [error code], [error localizedDescription]); UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Email Error" message:@"Sending Failed - Unknown Error :-(" delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil]; [alert show]; [alert release]; } -(void)createWaitOverlay { // fade the overlay in loadingLabel = @"Sending Test Drive..."; bgimage = [[UIImageView alloc] initWithFrame:CGRectMake(0,0,320,480)]; bgimage.image = [UIImage imageNamed:@"waitOverLay.png"]; [self.view addSubview:bgimage]; bgimage.alpha = 0; [bgimage addSubview:loadingLabel]; loadingLabel.alpha = 0; [UIView beginAnimations: @"Fade In" context:nil]; [UIView setAnimationDelay:0]; [UIView setAnimationDuration:.5]; bgimage.alpha = 1; loadingLabel.alpha = 1; [UIView commitAnimations]; [self startSpinner]; [bgimage release]; } -(void)removeWaitOverlay { //fade the overlay out [UIView beginAnimations: @"Fade Out" context:nil]; [UIView setAnimationDelay:0]; [UIView setAnimationDuration:.5]; bgimage.alpha = 0; loadingLabel.alpha = 0; [UIView commitAnimations]; [self stopSpinner]; } -(void)startSpinner { spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]; spinner.hidden = FALSE; spinner.frame = CGRectMake(137, 160, 50, 50); [spinner setHidesWhenStopped:YES]; [self.view addSubview:spinner]; [self.view bringSubviewToFront:spinner]; [spinner startAnimating]; } -(void)stopSpinner { [spinner stopAnimating]; [spinner removeFromSuperview]; [spinner release]; } 

Окончательные результаты показаны ниже. Экран немного тускнеет (например, когда отображается UIAlert). Он показывает сообщение о том, что его отправляют, а затем «улучшает» резервную копию при отправке сообщения.

Счастливое кодирование !!

введите описание изображения здесь

  • почему моя почтовая рассылка не работает с MFMailComposeViewController?
  • MFMailComposeViewControllerDelegate не работает Swift 3
  • Заправлять электронную почту в папке «Исходящие» при отправке emai с помощью MFMailComposeViewController
  • Отправка электронной почты без использования MFMailComposeViewController
  • MFMailComposeViewController отображается с пустыми полями
  • Пользовательская настройка MFMailComposeViewController открыта из UITextView
  • Сбой MFMailComposeViewController в ARC iOS6
  • Проблема при использовании MFMailComposeViewController
  • Невозможно изменить UIStatusBarStyle на MFMailComposeViewController
  • с помощью MFMailComposeViewController
  • Альтернатива MFMailComposeViewController?
  • Interesting Posts

    Лучший способ передачи данных между viewcontrollers (данные кэша) в MonoTouch

    можно ли изменить высоту текущей строки в UITableView?

    iOS Call animateWithDuration внутри dispatch_async

    Какова связь между форм-фактором Storyboard & Active Scheme в Xcode с использованием Autolayout?

    Установка iOS-приложений из локального plist (null) хотела бы установить

    Как сохранить и получить доступ к сеансу входа в Твиттер Twitter (iOS / Swift)?

    Пользовательский звук с использованием ионных push-уведомлений

    Есть ли способ программно отменить регистрацию устройства для push-уведомления?

    Показывать XIB перед UITabBarController?

    AVAudioSession с AVPlayer: значок «Play» в меню состояния, не отображающемся при воспроизведении проигрывателя AVPlayer

    CCLabelTTF поддерживает шрифты?

    Как узнать, превышает ли текст пределы текстового вида?

    Как отказаться от SKScene?

    Кто-нибудь самостоятельно обновлял измененный вид таблицы на основе RACSignal?

    UIWebView не отображает мою страницу

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.