CEikSecretEditor输入字母和数字

 一切尽在源码中。想当年有多少symbian程序员浪费无数的时间去猜测这些恶心的实现!!!!

 

EXPORT_C void CEikSecretEditor::ConstructFromResourceL(TResourceReader& aReader)
    //
    // Construct from resource
    //
    {
    iMaxLen=aReader.ReadUint16();
    __ASSERT_ALWAYS(iMaxLen<=EMaxSecEdSecArrayLength, Panic(EEikPanicSecretEditorTooLong));
    iSecCharArr = HBufC::NewL( EMaxSecEdSecArrayLength );
    iFepState = CreateFepStateL();//设置输入法

    if ( !iExtension )
        {
        iExtension = CEikSecretEditorExtension::NewL();
        }
    InitCRedirectionListenerL();
    }



 

 

EXPORT_C MCoeFepAwareTextEditor_Extension1::CState* CEikSecretEditor::CreateFepStateL()
    {
    CAknEdwinState* editorState = new(ELeave) CAknEdwinState();

    // The status of AknLayoutUtils::Variant() is no longer checked -> Both
    // European and APAC variants enable EAknEditorFlagLatinInputModesOnly.
    editorState->SetFlags( EAknEditorFlagNoLRNavigation |
                           EAknEditorFlagLatinInputModesOnly |
                           EAknEditorFlagNoT9 |
                           EAknEditorFlagUseSCTNumericCharmap );

    editorState->SetDefaultInputMode(EAknEditorSecretAlphaInputMode);//默认只能是字母输入法
    editorState->SetCurrentInputMode(EAknEditorSecretAlphaInputMode);
    editorState->SetPermittedCases(EAknEditorLowerCase|EAknEditorUpperCase);
    editorState->SetCurrentCase(EAknEditorLowerCase);    
    editorState->SetPermittedInputModes(EAknEditorSecretAlphaInputMode | EAknEditorNumericInputMode);//也可以是数字输入法
    editorState->SetDefaultCase(EAknEditorLowerCase);
    editorState->SetSpecialCharacterTableResourceId(R_AVKON_SPECIAL_CHARACTER_TABLE_DIALOG_LATIN_ONLY);    
    editorState->SetNumericKeymap(EAknEditorPlainNumberModeKeymap);
    editorState->SetObjectProvider(this);
    
    return editorState;
    }


 

 

 

 

 

iSecret1->ConstructFromResourceL( reader );

之后加上

iSecret1->SetDefaultInputMode(EAknEditorNumericInputMode | EAknEditorSecretAlphaInputMode);//两种输入法都支持了


ps:

但是在模拟器(s60 3rd mr)上还只显示字母,不过装到手机上是可以切到数字输入法的.不知道是我的问题还是模拟器的问题?

 

 



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值