[refactor] Consolidate `UITextView` and `UITextField` APIs.
[refactor] rename classes that start with `UI` to `CCUI`, since that prefix is reserved by Apple.
[bugfix] setting the placeholder for `CCUISingleLineTextField` was missing in `createSingleLineTextField`
[bugfix] In `MultiLineTextView`, if `placeholder` changed, there doesn't seem to be a deterministic way of updating the `placeholderLabel`. We are relying on `drawRect:`. Instead, `placeholder` is now a computed property on top of `placeholderLabel.text`.
[bugfix] If the user wants multi-line secure input, we should set it, since it is possible, right?
[minor] `[viewWithTag:999]` was used instead of calling the property itself.
[minor] `drawRect:` was used to load properties, when it is normally in the getter.
[minor] fix ObjC code style
This PR also fixed issue:
https://github.com/cocos2d/cocos2d-x/issues/9572
For the new EditBox:
1. Added a ResizeLayout for updating layout when soft keyboard is shown.
This is because some Android devices won't refresh the view and when
the view is panned, the native EditText will turn black. This is really
a hack, but it works for many Android devices from 2.3 to 5.0.
When keyboard is beginning to show, the ResizeLayout's doLayout
method will be called 24 frames per second. Once the keyboard is closed,
or the user begins to input, the doLayout method will be disabled.
2. EditText is working in a different UI thread, so all the data
are passed to GL thread via callbacks in UI thead.
3. It also overrides onKeyDown method in Cocos2dxEditBox.
When the EditText got the focus, users could press back key to exit
the game. This behavior is not allowed. We give developer the choice to
handle back key event manually.
+ Moved internal stuff to the implementation file
+ Added pragma and organized methods
+ cleanup synthesize, instance variables, and overall code style for ObjC