【Unity/iOS】TouchScreenKeyboardの入力欄をカスタマイズ

InputFieldをタップすると、モバイルではTouchScreenKeyboardが出てきます。 その上に入力欄が表示されますが、このUI部分はNativeで作られているので、 カスタマイズする場合はNativeのコードを変更する必要があるようです。

  • f:id:chocolattips:20171102084114p:plain 変更前(デフォルト)
  • f:id:chocolattips:20171102084121p:plain 変更後

Keyboard.mm

iOS向けにBuildするとXcode用のプロジェクトが生成され、 その中にある以下のiOS(Objective-C)のコードを変更します。なお、AppendではなくReplaceすると元に戻るので注意が必要です。

Classes > UI > Keyboard.mm

createToolbarWithView

ここで表示する部品の生成をしています。

- (CreateToolbarResult)createToolbarWithView:(UIView*)view
UIToolbar

バー全体の部分に該当します。

背景色を変更する場合
toolbar.barTintColor = [[UIColor alloc]initWithRed:1 green:1 blue:1 alpha:1];
UIBarButtonItem

バーに貼り付けるボタン(Done, Cancel)です。

ボタンのテキストを変更
UIBarButtonItem* doneItem = [[UIBarButtonItem alloc] initWithTitle:@"送信" style:UIBarButtonItemStylePlain target:self action:@selector(textInputDone:)];
ボタンに画像を設定
UIBarButtonItem* doneItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"SendIcon.png"] style:UIBarButtonItemStylePlain target:self action:@selector(textInputDone:)];

画像を使用する場合、XcodeUnity-iPhone/Images.xcassets/を選択。 [+]を押下しimagesetを追加後、等倍/2x/3xの画像をドラッグ&ドロップで設定すると画像を使用できるようになります。

positionInput

ここで入力欄のinputViewのサイズを決定しています。

- (void)positionInput:(CGRect)kbRect x:(float)x y:(float)y

参考