cocos2dX UI控件之CCEditBox

剛剛看了看以前寫的博客, 我們已經學了CCLabelTTF, CCLabelBMFont, CCLAbelAtlas, CCSprite, CCMenu這些基礎控件了, 基礎控件也沒有多少了, 我們今天來學習基礎控件中的CCEditBox, 嘿嘿, 看名字大家也就知道是什麼東東了吧.


我們先來看看繼承關係:


所以, 我們創建類的時候要繼承CCIMEDelegate


用法:

CCEditBox* editbox = CCEditBox::create(創建一個矩形區域, 一個"九妹"對象);

對於"九妹", 相信做過安卓的都清楚吧, 這裏, 我解釋一下, 所謂的九妹就是指可拉伸圖片, 我們等一會兒會使用一張97*18的圖片作爲編輯框背景, 然後我們設置編輯框的寬高爲300*100, 大家等會兒看看是不是圖片還是很清晰, 這就是九妹的強大之處, 對圖片進行填充式拉昇, 避免了圖片的失真, 九妹的用法:CCScale9sprite::create( "圖片文件");


我們繼續來看CCEditBox, 由於CCScale9sprite屬於擴展功能, 所以要加上#include "cocos-ext.h", 並且使用命名空間USING_NS_CC_EXT;(我使用的是2.1.5版本的, 直接就可以使用, 貌似2.0以前的直接引用頭文件會報錯, 我們來看看解決辦法, 

( 旁白: 最近有盜圖的, 進來了還說是原創, 打個標記先得意))


做了這麼多準備工作, 我們正式開始來創建CCEditBox, 

CCScale9Sprite* jiumei = CCScale9Sprite::create( "bg.png");					//創建一個九妹對象
	CCEditBox* editbox = CCEditBox::create( CCSizeMake( 300, 100), jiumei);		//創建一個CCEditBox
	editbox->setPosition( ccp( visibleSize.width / 2, visibleSize.height / 2));
	addChild( editbox);


我們點擊一下CCEditBox, 然後輸入文字:


彈出了一個對話框, 我們就可以輸入文字了, 並且背景圖也並沒有失真, 是不是?

手機會自動彈出鍵盤.

好了, 我們今天的課程... ... 其實還沒完( 旁白:  去死!!!!發火)



我麼輸入文字之後, 還必須能夠得到才行啊


我們繼續來看, 查閱之後我們發現, cocos2dX爲我們提供了很多功能, 我這裏介紹兩個常用的, 有需要的朋友可以自行查閱官方API, 或者離線手冊(稍後我會上傳)

getText();               //獲取文本

setText( "字符串");               //設置文本(個人感覺沒多大用處)

setFontColor( ccc3對象);           //設置文本顏色

setColor( ccc3對象); //設置背景顏色

setPlaceHolder( "文本");   //設置預設文本

setMaxLength( 對象);         //設置最大長度

setInputMode( 輸入模式);             //設置鍵盤模式

setInputFlag( 文本類型);                  //設置文本類型

setReturnType( 鍵盤返回類型);       //設置鍵盤返回類型


鍵盤模式:

kEditBoxInputModeAny                    //文本樣式

kEditBoxInputModeEmailAddr         //郵件樣式

kEditBoxInputModeNumeric            //數字樣式

kEditBoxInputModePhoneNumber  //電話號碼樣式

kEditBoxInputModeUrl                     //網址樣式

kEditBoxInputModeDecimal            //輸入樣式

kEditBoxInputModeSingleLine        //文本樣式


文本類型:

kEditBoxInputFlagPassword                          //密碼形式

kEditBoxInputFlagSensitive                            //敏感數據輸入

kEditBoxInputFlagInitialCapsWord                 //每個單詞首字符大寫

kEditBoxInputFlagInitialCapsSentence           //第一句首字符大寫

kEditBoxInputFlagInitialCapsAllCharacters     //自動大寫


返回類型:

kKeyboardReturnTypeDefault        //默認

kKeyboardReturnTypeDone           //Done

kKeyboardReturnTypeGo               //Go

kKeyboardReturnTypeSend           //Send

kKeyboardReturnTypeSearch        //Search


在使用getText的時候, 我們應該在用戶輸入完成之後再獲取, 所以cocos2dX也給我們提供了一些虛函數, 監聽完成之類的狀態, 我也例舉部分:

virtual void editBoxEditingDidEnd(cocos2d::extension::CCEditBox * myeditbox); //輸入結束

virtual void editBoxReturn(cocos2d::extension::CCEditBox * myeditbox); //點了返回之後

... ...

我們可以根據需要, 實現對應的功能

我們繼續, 加兩行代碼

	editbox->setInputFlag( kEditBoxInputFlagPassword);		//設置文本類型
	editbox->setColor( ccc3( 255, 0, 0));					//設置yanse
	editbox->setFontColor( ccc3( 0, 255, 255));				//設置文本顏色

再來看效果:



看起來還不錯吧( 旁白: 真心醜鄙視)


嗯, 還有一部分功能沒有辦法在電腦上展示, 我們明天講講移植安卓, 大家在手機上測試吧微笑

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章