18.3.5 验证
当控件具有焦点,且用户正在编辑时,可能临时变成无效。不过,当焦点离开控件时—更改对话框行,或者按下“Done”按钮—使控件包含有效的值是非常重要的。
对将要移走焦点的每个控件调用PrepareForFocusLossL()。这个函数的默认CCoeControl实现为空:对于内部状态永远不可能为无效的控件(例如,选项列表、按钮、复选框或文本编辑器),没有必要改写此函数。不过,如果控件可能处于无效状态,应当实现这个函数,以检查控件的当前有效性。如果无效,则应当:
发出某类消息通知用户控件处于无效状态;
重置控件为最接近的有效值。
如果不可能重置值(例如,用户在数字编辑器中输入了文本),则应当异常退出,通常返回错误码KErrNone。它通知对话框控件无效,并阻止对话框更改当前行、继续按Done按钮等。
可以调用iEikonEnv→LeaveWithInfoMsg()显示信息类消息,并异常退出,而不显示Uikon的标准警告对话框。
【责任编辑:
董书 TEL:(010)68476606】