Я интегрирую MFMessageViewController и хочу отключить его область редактирования, запретив появление клавиатуры или отключив взаимодействие с ней пользователя. В настоящее время мой код:
Код: Выделить всё
import UIKit
import MessageUI
class ViewController: UIViewController,MFMessageComposeViewControllerDelegate,UITextFieldDelegate {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
@IBAction func sendSmsClick(_ sender: AnyObject) {
guard MFMessageComposeViewController.canSendText() else {
return
}
let messageVC = MFMessageComposeViewController()
UIButton.appearance(whenContainedInInstancesOf: [MFMessageComposeViewController.self]).isUserInteractionEnabled = false
messageVC.body = "Enter a message hjhjhjkhjkhjhjhjjhgjhghjgjhghjghjghjghjgjhghjghjgjhghjghjghghjghjghjghghjghjhjghjghjghhvvvbnvhvhghghguyguygyugugigiugiouiopuopuoppuuo";
messageVC.recipients = ["Enter tel-nr"]
messageVC.messageComposeDelegate = self;
NSLog("Subviews %@", messageVC.view.subviews);
// self.view.endEditing(true)
self.present(messageVC, animated: false) {
// self.getAllSubviews(view: messageVC.view)
messageVC.view.loopViewHierarchy { (view, stop) in
if view is UIButton {
/// use the view
print("here")
stop = true
}
}
}
}
func messageComposeViewController(_ controller: MFMessageComposeViewController, didFinishWith result: MessageComposeResult) {
switch (result.rawValue) {
case MessageComposeResult.cancelled.rawValue:
print("Message was cancelled")
self.dismiss(animated: true, completion: nil)
case MessageComposeResult.failed.rawValue:
print("Message failed")
self.dismiss(animated: true, completion: nil)
case MessageComposeResult.sent.rawValue:
print("Message was sent")
self.dismiss(animated: true, completion: nil)
default:
break;
}
}
Подробнее здесь: https://stackoverflow.com/questions/681 ... text-entry
Мобильная версия