2012-03-19 38 views
7

Khi tôi hiển thị "Tin nhắn mới" theo cách thủ công, tôi sẽ thấy biểu tượng camera ở bên trái của vùng chỉnh sửa văn bản. Khi tôi sử dụng MFMessageComposeViewController nó sẽ không hiển thị biểu tượng này có nghĩa là bạn không thể chèn hình ảnh. Tôi biết điều này có thể được thực hiện bởi vì những kẻ đã thực hiện txtAgif có thể làm điều đó. Một sự khác biệt tinh tế là Caps được bật. Đây có thể là một đầu mối về cách họ đang làm việc này.MFMessageComposeViewController không hiển thị biểu tượng camera

Tôi biết rằng MFMessageComposeViewController không cho phép bạn chèn hình ảnh theo chương trình và đó là lý do tại sao tôi làm bản sao cho mẹo UIPasteboard. Phần này hoạt động hoàn hảo.

Câu hỏi tương tự này đã được hỏi herehere câu hỏi chưa được trả lời ngoại trừ "Không thể thực hiện được".

Đây là bài đăng đầu tiên của tôi nên tôi không có thứ hạng đủ cao để đóng góp cho các bài đăng câu hỏi khác.

Họ làm như thế nào? Có một thủ thuật để MFMessageComposeViewController hoặc là họ sử dụng một cái gì đó hoàn toàn khác nhau?

Trả lời

3

Tôi đã tìm thấy câu trả lời! Sử dụng UIApplication sharedApplication để khởi chạy một thông báo trống trong khi MFMessageComposeViewController thì không. Bởi vì tôi đang sử dụng UIPasteboard tôi không cần phải chèn các mục vào cơ thể.

NSString *phoneToCall = @"sms: 123-456-7890"; 
    NSString *phoneToCallEncoded = [phoneToCall stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]; 
    NSURL *url = [[NSURL alloc] initWithString:phoneToCallEncoded]; 

    [[UIApplication sharedApplication] openURL:url]; 

Đây là lỗi trong MFMessageComposeViewController vì tại sao chúng cho phép hình ảnh được chèn vào một và không phải cái kia. Tôi sẽ chèn một hình ảnh nhưng tôi không được phép vì tôi không có đủ danh tiếng.

+1

ngay bây giờ nếu danh tiếng của bạn tăng ... hãy chèn hình ảnh – KDeogharkar

+1

tôi muốn xem cách bạn giải quyết vấn đề này .... – KDeogharkar

+0

Bạn vẫn cần trợ giúp với kdeo_16 này? – whatchamacallit

4

Tôi đã cố định này bằng đoạn mã sau:

UIPasteboard *pasteboard = [UIPasteboard generalPasteboard]; 
      pasteboard.persistent = YES; 
      NSString *imagefile =app.strimagepath; 

      /// 
      BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:imagefile]; 

      if (fileExists) 
      {  
       NSData *data = UIImagePNGRepresentation([UIImage imageWithContentsOfFile:imagefile]); 
       pasteboard.image = [UIImage imageWithData:data]; 
      } 
      NSString *phoneToCall = @"sms: 123-456-7890"; 
      NSString *phoneToCallEncoded = [phoneToCall stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]; 
      NSURL *url = [[NSURL alloc] initWithString:phoneToCallEncoded]; 

      [[UIApplication sharedApplication] openURL:url]; 

Đây app.strimgPath là con đường của hình ảnh được lưu trữ trong thư mục tài liệu. khi MessageView được mở. Nhấn và bấm vào Dán và tin nhắn sẽ được dán.

+0

Bạn chỉ thêm bản sao vào khay nhớ tạm. Chìa khóa cho câu trả lời cho câu hỏi của tôi là bạn phải sử dụng UIApplication để khởi chạy khung nhìn tin nhắn. Bây giờ gửi một ví dụ bằng cách sử dụng MFMessageComposeViewController hoạt động. Nó không phải là trừ khi Apple cập nhật lớp này. – whatchamacallit

+0

khi bạn không thể nhìn thấy nút máy ảnh hoặc bạn không thể dán, chỉ cần thử bằng cách thêm id Tin nhắn hợp lệ của người nhận và nó sẽ bật biểu tượng máy ảnh cũng như sẽ cho phép bạn dán hình ảnh. – Prerna

Các vấn đề liên quan