0

私のアプリケーションでは、ローカル言語の1つでカスタムキーボードを開発しています。これで、このキーボードはUITextFieldとUITextViewで正常に機能します。どちらの場合も、このようなカスタムキーボードを実装します。

textField.inputView = Customkeyboard;
textView.inputView = Customkeyboard;

しかし、UISearchBar用に実装すると

searchBar.inputView = Customkeyboard;

それは私に次のエラーを与えます。

エラー:オブジェクトを設定できません-読み取り専用プロパティまたはセッターが見つかりません

プロパティと合成も設定しましたが、この問題を解決できません。誰かがこの問題の解決を手伝ってくれますか。ありがとうございます。

4

2 に答える 2

0

検索バーに設定することも、プロパティUIViewを読み取り専用として持つUIResponderから継承することもできませんが、UITextFieldはプロパティを上書きして作成しますUITextFieldが、searchBarはそうではありません。UISearchBarreadAndWrite

もちろん、UISearchBarのサブクラスを作成してプロパティを再宣言することもでき、それ機能する可能性があります。

于 2012-10-09T17:47:40.883 に答える
0

UIResponderのクラスドキュメントによると

このプロパティの値はnilです。ユーザーからの入力を収集するためにカスタムビューを必要とするレスポンダーオブジェクトは、このプロパティを読み取り/書き込みとして再宣言し、それを使用してカスタム入力ビューを管理する必要があります。その後、レシーバーが最初のレスポンダーになると、レスポンダーインフラストラクチャは指定された入力ビューを自動的に表示します。同様に、ビューが最初のレスポンダーステータスを辞任すると、レスポンダーインフラストラクチャは指定されたビューを自動的に閉じます。

さて、以下の.hファイルと.mファイルのようにUISearchBarから継承されたクラスを作成します。.hファイルの広告で次の行

@interface SearchBar:UISearchBar
@property(readwrite、retain)UIView * inputView;
@終わり

これを使用している現在のコントローラーで、UISearchBarをSearchBarに置き換えます。

searchBar.inputView = Customkeyboard; // searchBarはSearchBarのオブジェクトであり、UISearchBarではありません

于 2012-10-09T17:48:04.657 に答える