CCEditBox/CCEditBoxImplIOS

#ifndef __CCEditBoxIMPLIOS_H__

#define __CCEditBoxIMPLIOS_H__


#include "cocos2d.h"


#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)


#include "ExtensionMacros.h"

#include "CCEditBoxImpl.h"


#import <Foundation/Foundation.h>

#import <UIKit/UIKit.h>


@interface CustomUITextField : UITextField

{

}


@end



@interface EditBoxImplIOS : NSObject <UITextFieldDelegate>

{

    CustomUITextField* textField_;

    void* editBox_;

    BOOL editState_;

}


@property(nonatomic, retain) UITextField* textField;

@property(nonatomic, readonly, getter = isEditState) BOOL editState;

@property(nonatomic, assign) void* editBox;


-(id) initWithFrame: (CGRect) frameRect editBox: (void*) editBox;

-(void) doAnimationWhenKeyboardMoveWithDuration:(float)duration distance:(float)distance;

-(void) setPosition:(CGPoint) pos;

-(void) setContentSize:(CGSize) size;

-(void) visit;

-(void) openKeyboard;

-(void) closeKeyboard;


@end


NS_CC_EXT_BEGIN


class CCEditBox;


class CCEditBoxImplIOS : public CCEditBoxImpl

{

public:

    CCEditBoxImplIOS(CCEditBox* pEditText);

    virtual ~CCEditBoxImplIOS();

    

    virtual bool initWithSize(const CCSize& size);

    virtual void setFont(const char* pFontName, int fontSize);

    virtual void setFontColor(const ccColor3B& color);

    virtual void setPlaceholderFont(const char* pFontName, int fontSize);

    virtual void setPlaceholderFontColor(const ccColor3B& color);

    virtual void setInputMode(EditBoxInputMode inputMode);

    virtual void setInputFlag(EditBoxInputFlag inputFlag);

    virtual void setMaxLength(int maxLength);

    virtual int  getMaxLength();

    virtual void setReturnType(KeyboardReturnType returnType);

    virtual bool isEditing();

    

    virtual void setText(const char* pText);

    virtual const char* getText(void);

    virtual void setPlaceHolder(const char* pText);

    virtual void setPosition(const CCPoint& pos);

    virtual void setVisible(bool visible);

    virtual void setContentSize(const CCSize& size);

virtual void setAnchorPoint(const CCPoint& anchorPoint);

    virtual void visit(void);

virtual void onEnter(void);

    virtual void doAnimationWhenKeyboardMove(float duration, float distance);

    virtual void openKeyboard();

    virtual void closeKeyboard();

virtual void onEndEditing();

    

private:

voidinitInactiveLabels(const CCSize& size);

voidsetInactiveText(const char* pText);

voidadjustTextFieldPosition();

    void            placeInactiveLabels();

    CCLabelTTF*     m_pLabel;

    CCLabelTTF*     m_pLabelPlaceHolder;

    CCSize          m_tContentSize;

    CCPoint         m_obPosition;

    CCPoint         m_obAnchorPoint;

    EditBoxImplIOS* m_systemControl;

    int             m_nMaxTextLength;

    bool            m_bInRetinaMode;

};



NS_CC_EXT_END



#endif /* #if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS) */


#endif /* __CCEditBoxIMPLIOS_H__ */


原文地址:https://www.cnblogs.com/hrhguanli/p/3978840.html