InputAccessoryViewが実機で動作しない
UITextFieldやUITextViewにおいてキーボードが表示される時にカスタムビューを追加する手段としてInputAccessoryViewがある。
これはググると
public class TestText : UITextField { public override UIView InputAccessoryView { get { UIView view = new UIView(new RectangleF(0,0,320,30)); view.BackgroundColor = UIColor.Green; return view; } } }
という事例がたくさんでてくる。実際シミュレータでは問題なく意図した動作をしてくれる。
しかし実機ではまったく動作しない。そもそもオーバライドしたInputAccessoryViewのgetterが呼び出されない。
調べた結果InputAccessoryViewをオーバーライドするのではなく、InputAccessoryViewにビューを代入するだけで良いことが判った。
UIView view = new UIView(new RectangleF(0,0,320,30)); view.BackgroundColor = UIColor.Green; UITextField txt = new UITextField(); txt.Frame = new RectangleF(0,0,80,40); txt.InputAccessoryView = view;
これはバグなんだろうか。