質問

iPhone アプリにテキスト入力ボックスが 1 つあり、シミュレーターでそれをタッチすると、キーボードがポップアップします。しかし、それを取り除く方法はありません。他の Web ページでは解決策が提供されていますが、それが機能する理由は説明されていませんが、私にとっては機能しません。テキストボックスのデリゲートをuiviewにしてから、オブジェクトに対してresignfirstresponderを呼び出すと言われていますが、呼び出されることはありません。助言がありますか?実際に何が起こっているのか誰か説明できますか?設計パラダイムが何であるかを知っていれば、自分でも理解できます...

おそらく、テキストフィールドからフォーカスを外すために「go」ボタンを置くだけでよいでしょうか?

役に立ちましたか?

解決

これを行う 1 つの方法は、オブジェクトをテキスト フィールドへのデリゲートとして設定し、実装することです。

- (BOOL)textFieldShouldReturn:(UITextField *)textField

あなたが電話する場所 [textField resignFirstResponder]

これにより、戻る/進む/完了ボタン (右下のキーボード キーをどのように設定しても) を押したときにキーボードが消えます。

を参照してください。 UITextFieldデリゲート 詳細については参照してください。

他のヒント

キーボードを閉じるには、TextField Delegate を使用できます。

これを使用するには、次の手順に従ってください...
1.viewController で。h 次のようにデリゲート宣言を追加します。

@interface ViewController : UIViewController <UITextFieldDelegate> {
    }
2.viewController 内。メートル このメソッドを呼び出します:
- (BOOL)textFieldShouldReturn:(UITextField *)textField
3.次に、次のようなコードを書きます。
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    [textField resignFirstResponder];
    return YES;
    }
4.最後のステップは、textField のデリゲートを設定することです。
- (void)viewDidLoad {
        [super viewDidLoad];
        self.textField.delegate = self;
    }

- (BOOL)textFieldShouldReturn:(UITextField *)textField デリゲート内の は、戻るボタンが押されたときに呼び出されます。

電話したいですか [textField resignFirstResponder] そして戻ってきます YES. 。それでうまくいくはずです。また、デリゲートが設定されていることを確認してください。疑わしい場合は、ブレークポイントを追加するか、 NSLog そして検証してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top