0

appdelegate クラスのみがある場所にアプリを作成しました。UIView や View Controller は作成しません。ウィンドウにテキストフィールド、ラベル、ボタンを追加しました。

ユーザーがテキストボックスをタップしたときにキーボードを非表示にしたい。これは通常、メソッド touchesBegan によって実現されます。このメソッドを実装するには、2 つのことを行う必要があります。

1つはヘッダーファイル(.h)に追加されます

もう 1 つは、textField のデリゲートを設定します。つまり、textField.delegate=self; です。

この2つのことをしました。しかし、それでも touchesBegan メソッドは呼び出されませんでした。

なんで?UIView または UIViewController クラスが必要ですか?

前もって感謝します

4

2 に答える 2

3

UIWindowは のサブクラスなUIViewので、それらにフックするだけです。しかし、これは非常に悪い設計パターンです。アプリ デリゲートですべてを行うのではなく、単一のビュー コントローラーを使用するようにアプリケーションを変更することを検討してください。そうしないと、アプリのデリゲートが設計されていないものになるように仮装しています。

于 2011-05-04T14:01:16.793 に答える
0

touchesBegan は UIView メソッドです。セットアップでそれを行いたい場合は、UIView サブクラスを作成し、すべてのコントロールをその中に入れて、UIView サブクラスに touchesBegan を実装する必要があります。

于 2011-05-04T13:59:17.923 に答える