2016-08-06 8 views
1

ターゲットの変更された「カスタムキーボード」を追加するカスタムキーボードを開発しています。ios)カスタムキーボードの上にスージージングビューを作成する方法

私はUIInputViewControllerのサブクラスを開発しています。

カスタムキーボードタイプを正しく作成しました。

だから私はカスタムキーボードのすぐ上に、ユーザーが今までに入力したテキストに従って提案ビューを作成する必要があります。

デフォルトのシステムキーボードのモジュールとまったく同じモジュールです。

しかし、私がアクセスしようとする「inputAccessoryView」以下のコードを持つ:

プロパティに割り当てることができません:「iputAccessoryViewは、」GET専用のプロパティです

let customView = UIView(frame:CGRectMake(0,0,UIScreen.mainScreen().bounds.width,100)) 
customView.backgroundColor = UIColor.redColor() 
self.inputAccessoryView = customView 

私はエラーが得ました

私は多くを検索しましたが、何も私とは関係ありません。

'UITextField'および'accessoryview of UITextField'not related to 'UIInputViewController'を参照してください。

しかし、自動補完モードを起動した後、デフォルトのシステムキーボードが私に提案キーワードの完全なinputAccessoryViewを示していますが、私のカスタムキーボードは、それ自体の上に何も表示されません。

私は仕事がない「のUITextField」と「UIInputViewController」で行われるべきだと思うし、私のカスタムキーボードはそのinputAccessoryviewを作成するために活性化が必要です。

私には紛失や誤解がありますか?

答えて

0

AppleのCustom Views for Data Inputドキュメントの状態:

UIResponderから直接または間接的に継承するクラス(通常 カスタムビュー)は、独自の入力ビューと入力アクセサリ ビューを指定することができます。」

あなたは両方がUIResponderから継承UIViewまたはUITextFieldような何かのサブクラスであなたのinputAccessoryViewを定義する必要があります。これにより、特定の種類のビューが最初のレスポンダになったときに、キーボードの上に表示する内容を定義します。

次のようなものになってしまいます。

class MyTextField: UITextField { 
    override var inputAccessoryView: UIView? { 
     return myView 
    } 
} 

MyTextFieldがファーストレスポンダになると、myViewは、キーボードの上に表示されます。

関連する問題