问题:
我不想用rss来构建CEikEdwin,因为CEikEdwin会经常改变输入限制。所以考程序来设置比较好。
但我一个只让输入英文的输入框构建如下:
iPSEdwin = new (ELeave) CEikEdwin;
iPSEdwin->SetContainerWindowL(*this);
iPSEdwin->ConstructL(EAknEditorFlagDefault,16,16,1);
iPSEdwin->SetInputCapabilitiesL(TCoeInputCapabilities::EWesternAlphabetic );
可运行后发现,只能输入数字,右上脚的输入法提示也没有了。
但另外一个只让输入数字的输入框构建如下:
iIDEdwin = new (ELeave) CEikEdwin;
iIDEdwin->SetContainerWindowL(*this);
iIDEdwin->ConstructL(EAknEditorFlagDefault,16,16,1);
iIDEdwin->SetInputCapabilitiesL(TCoeInputCapabilities::EWesternNumericIntegerPositive);
这就是正常的,只有数字输入,右上角的输入法提示也是正确的。
我该如何设置CEikEdwin的输入限制,不通过rss来构建
解决:
可以使用下面的代码实现只能输入字母的限制:
Code:
iPSEdwin = new (ELeave) CEikEdwin;
iPSEdwin->SetContainerWindowL(*this);
iPSEdwin->ConstructL(EAknEditorFlagDefault,16,16,1);
iPSEdwin->SetAknEditorFlags(EAknEditorFlagLatinInputModesOnly);
iPSEdwin->SetContainerWindowL(*this);
iPSEdwin->ConstructL(EAknEditorFlagDefault,16,16,1);
iPSEdwin->SetAknEditorFlags(EAknEditorFlagLatinInputModesOnly);