Developer

Setting Value Help Options

You can directly set the collection for value helps for phone title, currency title, and address title types.

To set a collection, use:
// create the phone number cell
MAFPhoneNumberTableViewCell* cellPhoneNumber = [self.mediator getPhoneNumberTableViewCell];

// add/set custom phone types
NSArray* phoneTypes = [[[NSArray alloc] initWithObjects:NSLocalizedString(@"SAP Phone",@"SAP Phone"), NSLocalizedString(@"Mobile 1",@"Mobile 1"), nil] autorelease];
cellPhoneNumber.phoneTypes = phoneTypes;

Showing Value Help Screens on iPad

For iPad, instead of presenting a value help in a modal screen, use the pop-up controller to show the list of valid values close to the locale-aware control that is requesting it:
// MAFValueHelpMediatorDelegate implementation
- (void)valueHelpMediator:(MAFValueHelpMediator *)sender requestsDisplayOfValueHelpController:(MAFValueHelpController *)controller requestor:(UIView *)requestor
{
     if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad){ // iPad specific (use PopOver)
        UINavigationController* ncCurrencySelector = [[UINavigationController alloc] initWithRootViewController:controller];
		
        UIPopoverController* pcCurrencySelector = [[UIPopoverController alloc] initWithContentViewController:ncCurrencySelector];
        pcCurrencySelector.popoverContentSize = CGSizeMake(350, 500);
        
        CGRect rectTrans = [requestor.superview convertRect:requestor.frame toView:self.view];
        [pcCurrencySelector presentPopoverFromRect:rectTrans inView:self.view permittedArrowDirections:UIPopoverArrowDirectionLeft | UIPopoverArrowDirectionRight animated:TRUE];
        
        // release controllers appropriately 
        // …
    }
}

Changing Value Help Presentation Mode

You can avoid the bridging functionality of the MAFValueHelpMediator by directly setting your custom accessor delegates on the locale-aware controls. By default, the mediator plays the role of the accessor delegate toward locale-aware controls. The accessor delegates are always called back when an action is triggered on the control itself, for example, editing started, ended, or when a value help is requested. These messages contain the value help collection to show as well, and no mediator is used because you set your custom MAFValueHelpAccessorDelegate for the control; however, you must present the value help collection appropriately.

The delegate contains only optional methods. To make a custom accessor delegate, implement this one in your custom delegate implementor class:
// MAFValueHelpAccessorDelegate implementations
- (void) valueHelpAccessor:(id<MAFValueHelpAccessor>)sender 
requestSelectionForKey:(NSString*)key 
withValueHelpCollection:(id<MAFValueHelpCollection>)collection 
andValueHelpTitle:(NSString*)title;