Write Property Set Methods for Custom UI Components in App Designer
When you create a public property for a custom UI component, one step involves writing
code to update the underlying components and graphics objects within your custom component
whenever the value of the public property changes. In general, perform this step by writing
code in the component update function.
MATLAB® calls the update function only when necessary, which can result
in performance improvements over writing custom code to perform a similar purpose. For more
information about updating properties using the update function, see Create Public Properties for Custom UI Components in App Designer.
However, you might want to perform certain tasks when one specific property is updated but
not when other properties are updated. Because the update function executes
whenever the value of any public property changes, you can instead write
code to perform these tasks when a specific property changes by defining
a set method for that property.
Consider writing a property set method when you want to:
Perform custom property validation.
Throw a custom error when the property is set incorrectly.
Process the property value before storing it.
This example shows how to validate a public property of a custom IP address UI component by writing a set method.
IP Address Component Overview
This example IP address component accepts input formatted using either the IPv4 or IPv6 protocol. The protocol determines how the component is displayed:
IPv4 — The component contains four numeric edit fields, each with a value between 0 and 255.
IPv6 — The component contains eight text edit fields, each with four characters representing hexadecimal digits.

The IP address component interface consists of:
A public property named
Addressto store the value of the IP addressA public property named
Protocolto specify the IP address protocolA public callback named
AddressChangedFcnthat executes when an app user changes the IP address by typing in an edit field
Because the Address property can store either a four-element numeric vector (when the protocol is IPv4) or an eight-element cell array (when the protocol is IPv6), use custom validation logic in a property set method to check whether the Address value is valid.
To view the full IPAddress component code in App Designer, enter this command in the MATLAB® Command Window:
openExample('matlab/IPAddressCustomComponentExample');Create a Property Set Method
To create a new property set method for the Address property of the
IP address component, use these steps:
Create a new public function. In Code View, in the Editor tab, select
Function > Public Function.In the
methodsblock that contains the new function, delete the text(Access = public). Property set methods must be added in amethodsblock with no attributes. This deletion does not change the functionality of themethodsblock because the default value of theAccessattribute ispublic. For more information, see Property Get and Set Methods.Replace the function definition that App Designer creates with this code:
function set.Address(comp,val) % Write property validation code here end
The
set.Addressfunction executes whenever an app creator sets the value of theAddresspublic property.
For more information about
Perform Custom Property Validation
Write code in the set.Address function to verify that the new
property value follows the expected format:
If the protocol is IPv4, check that the app creator set the property to a vector of four integers between 0 and 255.
If the protocol is IPv6, check that the app creator set the property to a cell array of eight character vectors, where each character vector represents four hexadecimal digits.
In each case, if the new value is not in the expected format, throw a helpful
error to inform the app creator what value the property expects. Finally, set the
Address property of the component to the new property value.
Add this code to the body of the set.Address function:
switch comp.Protocol % Validate IPv4 address case "IPv4" if length(val) ~= 4 error("IPv4 address must have four fields.") end mustBeInRange(val,0,255) % Validate IPv6 address case "IPv6" if length(val) ~= 8 error("IPv6 address must have eight fields.") end if ~isequal(cellfun('length',val),repmat(4,1,8)) error("Specify IPv6 field as a four-digit hexadecimal number.") end try hex2dec(val); catch error("Specify IPv6 field as a four-digit hexadecimal number.") end end comp.Address = val;
Verify Property Validation Behavior
After you have finished developing the IPAddress component, verify
the property validation behavior by creating a component object and setting the
Address property from the MATLAB Command Window.
Navigate to the folder where the IPAddress.mlapp file is saved.
Create an IP address component, specify its position, and return the component object as
comp. By default, the component is created using the IPv4
protocol.
comp = IPAddress(Position=[50 100 420 31]);

Try to set the Address property to a scalar value. An error
displays.
comp.Address = 10;
Error using IPAddress/set.Address
IPv4 address must have four fields.Change the component to an IPv6 address component.
comp.Protocol = "IPv6";
Try to set one field of the IP address to a value that does not represent a four-digit hexadecimal number.
comp.Address{1} = '123h';Error using IPAddress/set.Address
Specify IPv6 field as a four-digit hexadecimal number.