2012-01-24 23 views
5

'daki Alıcılar listesini alma Uygulamamda MFMailcomposerViewController kullanıyorum. Her şey gayet iyi çalışıyor, çünkü hayır'a ihtiyacım var. alıcıların ve kullanıcının gönderdiği alıcıların listesi. o görevden sonra bu konuda Herhangi bir yardım veya çözüm .. Bunu yapmak için standart bir yol yoktur yokMFMailComposeViewController

+0

alıcıların sayısını alabilirsiniz ama kimliği yok .. – hemant

+0

@hemant Bana no almak nasıl öneri verebilir miyim. alıcıların da sadece buna ihtiyacım var. Teşekkürler peşin! –

cevap

0

bkz Cevap aldım ve paylaşmak istedim ... [blog] 'dan harika bir yardım aldım: http://jomnius.blogspot.com/2011/02/how-to-find-mfmailcomposeviewcontroller.html

for (int x=0; x<[emailArray count]-1; x++) { 
NSLog(@"%d). %@",x+1,[emailArray objectAtIndex:x]); 
NSString *element = [emailArray objectAtIndex:x]; 
NSArray *arr = [element componentsSeparatedByString:@" & "]; 
if ([arr count]==1) { 
    ++emailCount; 
} 
else{ 
    int more = [[[arr objectAtIndex:1] substringToIndex:1] intValue]; 
    emailCount+=(more+1); 
} 
} 
- (NSString *)findEmailAddresses:(UIView *)view depth:(NSInteger)count 
{ 
NSString *eAddress = nil; 
if (!view) 
    return eAddress; 
NSMutableString *tabString = [NSMutableString stringWithCapacity:count]; 
for (int i = 0; i < count; i++) 
    [tabString appendString:@"-- "]; 
NSLog(@"%@%@", tabString, view); 
if ([view isKindOfClass:[UITextField class]]) 
{ 
    // MAGIC: debugger shows email address(es) in first textField 
    // but only if it's about max 35 characters 
    if (((UITextField *)view).text) 
    { 
     eAddress = [NSString stringWithString:((UITextField *)view).text]; 
     NSLog(@"FOUND UITextField: %@", eAddress ? eAddress : @""); 
     [emailArray addObject:eAddress]; 
    } 
} 
NSArray *subviews = [view subviews]; 
if (subviews) { 
    for (UIView *view in subviews) 
    { 
     NSString *s = [self findEmailAddresses:view depth:count+1]; 
     if (s) eAddress = s; 
    } 
} 
return eAddress; 
} 
2

, temsilci yöntemi mailComposeController:didFinishWithResult:error: size besteci görünümü denetleyicisi için bir referans verir, ama hiçbir erişimcileri üzerinde vardır alıcı,

bir geçici çözüm görünümü denetleyicisi subviews incelemek olacağını saymak alıcıları tutun ve metni almak için kullanılan metin alanını bulmak için kullanabilirsiniz MFMailComposeViewController: Son olarak here

+0

ama ben 'aaa.aa @ aa.com ve 3 daha' gibi bir string alıyorum, bu durumda e-posta kimliğinin doğru olup olmadığını kontrol edemiyorum, aynı fro'ya ihtiyacım var ... –

+0

diyor ki Bu blogda, sadece bu alıcı karakterini almak için kullanabileceğinizi düşünüyorum, eğer 25 karakter sınırının ötesindeyse, o zaman ne olduğunu anlatan bir yol bilmiyorum. – wattson12

0

posta kompozisyonu artık uzak bir süreç (MailCompositionService) bir XPC servis çağrısı yoluyla yapıldığı gibi iOS 6'nın olarak bunu yapmanın bir yolu yoktur. Burada harika bir açıklama var: http://oleb.net/blog/2012/10/remote-view-controllers-in-ios-6/. Görünüm hiyerarşisindeki en düşük düzey, artık uzak işleme arayüzleyen bir _UIRemoteView'dir. http://jomnius.blogspot.com/2011/02/how-to-find-mfmailcomposeviewcontroller.html adresindeki blog yayınındaki kod şimdi geri dönecektir.

İlgili konular