1

私は初心者の iOS 開発者です。テキストビューがあるアプリケーションで作業していますが、'return' または 'enter' キーをクリックしても関連付けられたキーボードが消えません。

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
    if([text isEqualToString:@"\n"])
    {
        [txtView resignFirstResponder];
        return NO;
    }

    return YES;
}

どんな提案でも大歓迎です。

4

1 に答える 1

1

これは Niels Hansen からの引用です : iPhone キーボードを閉じる

覚えておく必要があることがいくつかあります。開発者が設定を忘れている一番の部分は、textField のデリゲートです。

Interface Builder を使用している場合は、textField のデリゲートをファイル Owner に設定する必要があることに注意してください。

Interface Builder を使用していない場合は、テキストフィールドのデリゲートを self に設定してください。returnType も含めます。たとえば、textField が gameField と呼ばれていた場合:

gameField.delegate = self;
gameField.returnKeyType = UIReturnKeyDone;

ViewController の UITextFieldDelegate も実装する必要があります。

@interface YourViewController : UIViewController <UITextFieldDelegate> 

最後に、textFieldShouldReturn メソッドを使用して呼び出す必要があります。

[textField resignFirstResponder]

   -(BOOL) textFieldShouldReturn:(UITextField*) textField {
    [textField resignFirstResponder]; 
    return YES;
}

すべての textFields はこの同じ方法を使用するため、この設定は一度だけ行う必要があります。デリゲートが textField に設定されている限り、インターフェイスに UITextFieldDelegate が実装されます。textFieldShouldReturn メソッドを追加し、resignFirstResponder をセットで呼び出します。

于 2012-05-07T08:27:52.563 に答える