сосредоточиться на поле ToReciepient в электронной почте - iphone - PullRequest
2 голосов
/ 02 января 2012

Можно ли по умолчанию фокусировать клавиатуру на поле «Кому» при открытии электронной почты в приложении? Если да, то как мы можем получить доступ к полю Кому по электронной почте?

Любой путь к цели будет по достоинству оценен.

Ответы [ 2 ]

2 голосов
/ 02 января 2012

Вы можете сделать эти поля первыми отвечающими.

если вы добавите следующий метод в ваш класс ...

//Returns true if the ToAddress field was found any of the sub views and made first responder
//passing in @"MFComposeSubjectView"     as the value for field makes the subject become first responder 
//passing in @"MFComposeTextContentView" as the value for field makes the body become first responder 
//passing in @"MFRecipientTextField"       as the value for field makes the to address field become first responder 
- (BOOL) setMFMailFieldAsFirstResponder:(UIView*)view mfMailField:(NSString*)field{
    for (UIView *subview in view.subviews) {

        NSString *className = [NSString stringWithFormat:@"%@", [subview class]];
        if ([className isEqualToString:field])
        {
            //Found the sub view we need to set as first responder
            [subview becomeFirstResponder];
            return YES;
        }

        if ([subview.subviews count] > 0) {
            if ([self setMFMailFieldAsFirstResponder:subview mfMailField:field]){
                //Field was found and made first responder in a subview
                return YES;
            }
        }
    }

    //field not found in this view.
    return NO;
}

Затем, после того, как вы представите MFMailComposeViewController, передайте представление MFMailComposeViewController в функцию вместе с полем, в котором вы хотите стать первым респондентом.

MFMailComposeViewController *mailComposer = [[MFMailComposeViewController alloc] init];
mailComposer.mailComposeDelegate = self;

/*Set up the mail composer*/

[self presentModalViewController:mailComposer animated:YES];
[self setMFMailFieldAsFirstResponder:mailComposer.view mfMailField:@"MFRecipientTextField"];
[mailComposer release];

Edited ..

0 голосов
/ 02 января 2012

В этом следующем коде может быть полезно для этой проблемы

NSDictionary* defaults = [[NSUserDefaults standardUserDefaults] dictionaryRepresentation];
NSLog(@"Defaults: %@", defaults);

Как вы можете сказать, значения по умолчанию, возвращенные выше, содержатся в объекте словаря.Список клавиатур в словаре хранится как объект NSArray.Чтобы получить массив, просто запросите объект для ключа «AppleKeyboards»

NSArray *array = [[NSUserDefaults standardUserDefaults] objectForKey:@"AppleKeyboards"];
NSLog(@"Keyboards: %@", array);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...