Why do you need a portal? Is that need in order to set up a scroll bar so that you can scroll the list of check box values? With one check box for each portal row?
Yes, I forgot to mention that. This is for a GO app and I want it to be as close to native as possible....so having a checkbox on each portal row with scrolling and a graphic is what I am aiming to accomplish.
What I know how to do with a portal gets you close to the screen shot shown, but not exactly.
Before you go that route see if the following "trick" might be acceptable. It's a trick that I use on my iPhone, but may not be practical for the larger screen of an iPad and you may or may not like the result anyways.
In FileMaker Pro, open the popover and size the frame to be taller than the stencil shows will fit on your iPhone screen. Place a single field on this layout and format it with check boxes and the needed value list. Resize the popover frame to just barely fit the field and select the top, bottom, and side resize anchors.
When you open the popover on an iPhone, it should fill the screen and you should be able to use a finger to scroll the contents of the popover up to interact with the rest of the check boxes that otherwise would not fit on your screen.
It that's not to your needs:
Set up a table with one record for each value in your list of check box values. Since a value list can be specified to use values from a field, you may already have such a table. Use the Cartesian join operator (X) instead of the default = operator to set up a relationship such that any record in your layout's table matches to all records in this table of check box values:
LayoutTable::anyfield X CheckBoxValues::anyfield (double click the relationship line to get a dialog where you can change = into X.)
Now you can place a portal to CheckBoxValues inside a popover frame on your LayoutTable based layout and can list all the values of this table, but in a single column--that's the part that will differ from your screen shot. Place the field that stores the value in the portal row. Use the Rectangle tool to draw a square for the check box to the left of this field inside the portal row. Use the text tool to add the letter 'x' or a tick mark character centered inside this box. Conditinal formatting or Fm 13's "Hide object when" setting will be used to make this character appear and disappear to show what values are currently selected. Once all other parts are in place, all three objects, the box, the character and the value field can be set up as a single button to perform a script when tapped that either adds the value to a list or removes it.
But you'll need to decide how to store the list of selected values for any given record in the LayoutTable. One option is to define a related table of records. Tapping a button in the portal to select a value causes the script to create a new record with that value in the related table. Clearing the selection deletes this same record. The other option is to store the selected values just like a single field formatted with check boxes stores the multiple selected values. The script would append newly selected values to a return separated list of values in a single field or delete them from that same list. You'll want to carefully consider those options because what you want to do with these selected values in the rest of your database may be easier to do with one storage option or the other. With the related table, for example, a summary report can be set up to show the number of times each individual value was selected.
In this demo file, there's a check boxes layout that illustrates the "related table" option: https://www.dropbox.com/s/oyir7cs0yxmbn6i/ManyToManywDemoWExtras.fp7 It's in the older file format so you'll need to use Open from FileMaker's file Menu to convert the copy to the newer file format.
Here's a script that either appends a new value to a list in a field or deletes it if it is already in the list:
If [ IsEmpty ( FilterValues ( LayoutTable::SelectedValues ; CheckBoxValues::ValueField ) ) // then value has not been selected ]
Set Field [ LayoutTable::SelectedValues ; List ( LayoutTable::SelectedValues ; CheckBoxValues::ValueField ) ]
#Remove selected value from list
Set FIeld [ LayoutTable::SelectedValues ; //See calculation shown below ]
//Calculation to remove value from list:
Let ( [ TheList = ¶ & LayoutTable::SelectedValues & ¶ ;
NewList = Substitute ( TheList ; ¶ & CheckBoxValues::ValueField & ¶ ; ¶ )
Middle ( NewList ; 2 ; Length ( NewList ) - 2 )
) // Let
The middle expression removes the returns (¶) that were added at the beginning. The ¶ characters are used in this fashion to make sure that this works even if one value in your list has values like "Apple" and "Applesauce".
A conditional format expression for the X character can use: IsEmpty ( FilterValues ( LayoutTable::SelectedValues ; CheckBoxValues::ValueField ) ) to set the font size to 120+ pts to make it disappear. Or you can put that expression in FMP 13's "Hide Object When" box to produce the same result.