Используя средство выбора идентификационных данных

Большинство приложений, использующих идентификационные данные, требует, чтобы кто-то выбрал пользователей, чтобы быть добавленным к списку управления доступом (ACL). Введите Средство выбора Идентификационных данных. Средством выбора Идентификационных данных управляют CBIdentityPicker класс в платформе Сотрудничества. Это позволяет пользователям простой интерфейс для того, чтобы не только выбрать идентификационные данные, но также и для продвижения записей в Адресной книге к совместному использованию пользователей. Как разработчик приложений, никакая дополнительная работа не необходима, чтобы позволить пользователям создавать идентификационные данные; эта возможность прибывает лишенная вызова Identity Picker. В этой главе описываются, как настроить Средство выбора Идентификационных данных для Вашего приложения и как вызвать корректную реализацию Средства выбора Идентификационных данных.

../Art/sharing_users.jpg

Создание и настройка средства выбора идентификационных данных

Для каждого Средства выбора Идентификационных данных Ваше приложение требует, необходимо создать отдельный экземпляр CBIdentityPicker класс.

Возможность Средства выбора Идентификационных данных выбрать многократные записи сразу является настраиваемой функцией. По умолчанию Средство выбора Идентификационных данных не позволяет множественные выборы. Для изменения настроек по умолчанию вызовите setAllowsMultipleSelection: метод и передача значение YES. См. Перечисление 2-1 для примера того, как использовать эти методы.

Перечисление 2-1  настраивая CBIdentityPicker экземпляр

// Instantiate an ABIdentityPicker object.
CBIdentityPicker *picker = [[CBIdentityPicker alloc] init];
 
// Allow the Identity Picker to select multiple entries.
[picker setAllowsMultipleSelection:YES];

Вызов листа средства выбора идентификационных данных

beginSheetModalForWindow:modalDelegate:didEndSelector:contextInfo: метод вызывает Identity Picker как лист.

Первым параметром является окно, в котором должен открыться лист. В большинстве случаев это [sender window]. modalDelegate параметром является объект делегата. didEndSelector параметром является метод, который вызовут, когда пользователь выберет идентификационные данные и выбирает OK или Кнопку отмены. Это должен быть метод, содержащий три собственных параметра: a CBIdentityPicker объект, код возврата и контекст. Наконец, contextInfo параметром является любой объект, который Вы хотите отправленный в метод делегата.

Перечисление 2-2  , Вызывающее лист Средства выбора Идентификационных данных

- (IBAction)plusButton:(id)sender
{
    [picker beginSheetModalForWindow:[sender window]
            modalDelegate:self
            didEndSelector:@selector(identityPickerDidEnd:returnCode:contextInfo:)
            contextInfo:nil];
}

Когда пользователь закрывает Средство выбора Идентификационных данных, метод делегата (identityPickerDidEnd:identities:contextInfo:) вызывается. Этот метод передает выбранные идентификационные данные как массив CBIdentity объекты и контекст определяются методом beginSheetModalForWindow:modalDelegate:didEndSelector:contextInfo:. См. перечисление 2-3.

Перечисление 2-3  , Получающее идентификационные данные от Средства выбора Идентификационных данных

- (void)identityPickerDidEnd:(CBIdentityPicker *)identityPickerController returnCode:(NSInteger)returnCode contextInfo:(void *)contextInfo
{
    NSEnumerator *enumerator = [[identityPickerController identities] objectEnumerator];
    CBIdentity *nextIdentity;
 
    while (nextIdentity = [enumerator nextObject]) {
 
        //Do something interesting with the nextIdentity object
 
    }
}

Вызов средства выбора идентификационных данных модальное диалоговое окно

Для использования Средства выбора Идентификационных данных модальное диалоговое окно вызовите метод runModal. Этот метод вызывает модальное средство выбора идентификационных данных. Если пользователь выбирает кнопку OK в окне Identity Picker, можно возвратить выбранные идентификационные данные с identities метод. identities метод возвращает массив CBIdentity объекты. См. Перечисление 2-4.

Перечисление 2-4  , Вызывающее модальное Средство выбора Идентификационных данных

- (IBAction)plusButton:(id)sender
{
    NSArray *identities;
    NSEnumerator *enumerator;
    CBIdentity *nextIdentity;
 
    if ([picker runModal] == NSOKButton) {
        identities = [picker identities];
        enumerator = [identities objectEnumerator];
 
        // Enumerate over the returned identities
        while ((nextIdentity = [enumerator nextObject])) {
 
            // Do something interesting with the identity object
        }
    }
}