2012-06-09 6 views

答えて

150

はUITextViewは、ユーザがリターンキーを打つときに呼び出されるすべてのメソッドを持っていない

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    self.yourIBtextField.delegate = self; 
} 

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

私が行方不明になった部分は* .hファイル内のインターフェイスにを追加しました。これを追加した後、このコードは問題なく動作しました。誰かを助けることを願っています! – proudgeekdad

+7

この状況では、が必要です。 – brooNo

+3

textFieldからviewControllerへの接続をドラッグすると、ストーリーボード(xib)からデリゲートを接続することもできます。そうすれば、viewDidLoadメソッドから線を書く必要はありません。 – Luka

9

デリゲートメソッドを実装します。

これを行う場合でも、UITextViewDelegateのtextView:shouldChangeTextInRange:replacementText:メソッドを実装し、置換テキストが\ nであるかどうかをチェックしてキーボードを非表示にします。

他の方法もあるかもしれませんが、わかりません。

UITextViewDelegateプロトコルのサポートが宣言されていることを確認してください。

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range 
replacementText:(NSString *)text { 

    if([text isEqualToString:@"\n"]) { 
     [textView resignFirstResponder]; 
     return NO; 
    } 
    return YES; 
} 

私はそれが大いに役立つことを願っています。次の方法でのUIViewControllerに

+0

これは何らかの理由で隠し設定をリセットします。どんな考え? – John

+0

あなたはどのような種類の隠された設定のような詳細を提供していただけますか? –

1

メイクカテゴリ

- (void)hideKeyboard 
{ 
    [[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder) 
               to:nil 
              from:nil 
             forEvent:nil]; 
} 
関連する問題