From having a quick comparison between wxsFontPickerCtrl and wxsColourPickerCtrl I can say the reason is clear:
wxsFontPickerCtrl::wxsFontPickerCtrl(wxsItemResData* Data):
wxsWidget(
Data,
&Reg.Info,
wxsFontPickerCtrlEvents,
wxsFontPickerCtrlStyles,
flVariable | flId | flPosition | flSize | flEnabled | flFocused | flHidden | flColours | flToolTip | flHelpText | flSubclass | flMinMaxSize | flExtraCode)
{}
vs.:
wxsColourPickerCtrl::wxsColourPickerCtrl(wxsItemResData* Data):
wxsWidget(
Data,
&Reg.Info,
wxsColourPickerCtrlEvents,
wxsColourPickerCtrlStyles),
m_cdColour(*wxBLACK)
{}
shows that wxsFontPickerCtrl uses special flags which hides the validator flag and is actually most likely not what was intended. I wonder why this is the case (I didn't implement it).
Just adding (OR'ing) "flValidator" to this list should make it work, but requires you to build wxSmith yourself. However, I think a better way is to use the default flags and add what's needed in addition. For clarification: Usually, if you declare flags like that you want to add some non-default flags, but might also want to hide some default flags. I don't know what applies to wxsFontPickerCtrl to be honest... anybody?