1

にいるUIKeyboardときに「完了」ボタンを入力しながら閉じる必要がありますUITextView

注: で試してみましたUITextView。それは正常に動作し、UITextview で同じ概念を実装したいと考えています。私は試してみました

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

方法ですが、それには問題があります。

これは可能ですか?

4

5 に答える 5

2

迅速:

func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool {
    if text == "\n" {
        theTextView.resignFirstResponder()
        return false
    }
    return true
}
于 2015-01-14T01:12:43.460 に答える
1

次のコードを使用してください。役に立つかもしれません:)

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

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

        return YES;
}
于 2013-01-25T13:03:01.303 に答える
1

UITextView には、戻るボタンが必要なため、ボタンを実行するオプションがありません。戻るボタンを押すとキャッチできますが、あまりお勧めしません。UITextView の編集中にキーボードを非表示にする推奨方法は、メイン ビューまたはその他の要素でジェスチャをタップすることです。

于 2013-01-25T12:53:45.117 に答える
1

Ivan Alekの言うとおりですUITextView。次の行にカーソルを移動するには、戻るボタンが必要です。キーボードにビューを追加して、ボタンからキーボードを閉じることができます。このような:

UIToolbar       *toolbar    = [[[UIToolbar       alloc] initWithFrame:CGRectMake(0, 0, screenWidth, 30)] autorelease];
UIBarButtonItem *item2      = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(closeKeyboard)] autorelease];
UIBarButtonItem *item1      = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil] autorelease];

[toolbar setItems:[NSArray arrayWithObjects:item1 , item2, nil]];
[textView setInputAccessoryView:toolbar];

そして、closeKeyboardメソッドでファーストレスポンダーを辞任できます。

お役に立てれば。

乾杯!

于 2013-01-25T13:20:08.457 に答える
0

キーボードのアクセサリ ビューに Done ボタンを追加し、done メソッドを実装します。

  [textView resignFirstResponder];

textView のデリゲートを設定することを忘れないでください。

于 2013-01-25T13:18:45.563 に答える