1

を使用してテキスト フィールドでキーボードを非表示にしたいの - (BOOL)textFieldShouldReturn:(UITextField *)textField {ですが、テキスト ビューでも同じことを行う必要があるため、 を使用します- (BOOL)textViewShouldReturn:(UITextView *)textView {。それらを同じ AppDelegate にまとめることは可能ですか?

ありがとうございました。

4

5 に答える 5

1

はい、2 人の代理人を持つことができます

@interface ViewController : UIViewController<UITextFieldDelegate,UITextViewDelegate>

不運にも

プロトコル UITextViewDelegateには、このようなものはありません

- (BOOL)textViewShouldReturn:(UITextView *)textView {


UITextViewDelegate プロトコルここに画像の説明を入力

編集1


キーボードを非表示にするボタン押下イベント。

-(IBAction) yourButtonPressed:(id)sender;{

    for(UIView *v in self.view.subviews){
        if([v isKindOfClass:[UITextField class]] || [v isKindOfClass:[UITextView class]]){
            if([v isFirstResponder]){
                [v resignFirstResponder];
                break;
            }
        }
    }

}
于 2013-05-06T18:13:35.230 に答える
0

私はあなたの質問を完全には理解していません...基本的には次のことを行います:

  • UITextFieldDelegateandUITextViewDelegateをviewControllerに実装する
  • そのデリゲートのメソッドを実装します。必要/必要です

  • rejectFirstResponder / endTextField / textView の任意の場所での編集

于 2013-05-06T18:03:56.380 に答える
0

はい、UITextView では注意が必要です。著書に書いてある通り…

http://www.apeth.com/iOSBook/ch23.html#_uitextview

…iPadではキーボード右下のボタンでキーボードを消すことができるので、キーボードを消す問題は発生しません。したがって、これでiPhoneだけが残ります。通常、[完了] ボタンなどがあるようなインターフェイスがあります。たとえば、メモアプリがこれをどのように解決するかを見てください。

プロセス自体はまったく同じです。endEditing:スーパービューを呼び出すと、最初の応答者は誰でも最初の応答者ではなくなり、キーボードは引退します。

于 2013-05-06T18:17:08.730 に答える
0

はい、同じアプリケーションで textfield デリゲートと textview デリゲートを使用できます。

テキストフィールド:

@interface ViewController : UIViewController<UITextFieldDelegate,UITextViewDelegate>

// This allocates the textfield and sets its frame (or) you can use interfaceBuild
   UITextField *textField = [[UITextField  alloc] initWithFrame:
   CGRectMake(20, 50, 280, 30)]; 

  textField.delegate=self;

// This method enables or disables the processing of return key
-(BOOL) textFieldShouldReturn:(UITextField *)textField{    
    [textField resignFirstResponder]; // this is event for hide keyboard.
    return YES;
}

テキストビュー:

// init
 UITextView *textView = [[UITextView  alloc] initWithFrame:
       CGRectMake(20, 50, 280, 30)]; 

 - (void)textViewDidChangeSelection:(UITextView *)textView
{
 [textField resignFirstResponder]; // this is event for hide keyboard.
}
于 2013-05-06T18:35:01.467 に答える
0

viewController からデリゲートをサブスクライブし、それらのオブジェクトのデリゲートを viewController に設定してください。

.h

@interface YourViewController : UIViewController <UITextFieldDelegate, UITextViewDelegate>

.m

someTextField.delegate = self;
someTextView.delegate = self;

その音から、textField と textView のアクションに結び付ける必要があるだけです。IBAction を作成し、必要なものに関連付けます。その後、そのIBActionからResignFirstResponderを行うことができます。

このアクションを textField と textView の両方に使用します

- (IBAction)lowerTheText:(id)sender 
{
    [sender resignFirstResponder];
}
于 2013-05-06T18:02:35.067 に答える