2

UItextview からキーボードを辞任したい。UItextView デリゲート メソッドをプログラムで実装する方法。

4

4 に答える 4

6

リターンをクリックしたときにキーボードを辞任させたい場合は、このメソッドを実装する必要があります....

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

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

return YES;

}

コピーして貼り付けるだけです....:)

于 2012-03-16T13:07:35.930 に答える
5

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

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

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

    return YES;
}
于 2012-03-16T12:37:07.590 に答える
4

ユーザーがいつ「RETURN」を押したかを知るためのUITextviewの特定のデリゲートメソッドはありません。したがって、このようにすることができます

//In .h File

@interface BlahBlah : UIViewController <UITextViewDelegate>
  @property(nonatomic, retain) IBOutlet UITextView *myTextView;
@end

//In .m File
@implementation BlahBlah

@synthesis myTextView;

//In some method, can be viewDidLoad OR viewDidAppear . your convenience ;) 
{
   self.myTextView.delegate = self;
}

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

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

        return YES;
}
于 2012-03-16T12:32:33.923 に答える
4

UITextViewDelegate を使用する必要があります。次のように、クラス ヘッダーでプロトコルの使用を宣言する必要があります。

@interface YourClass:NSObject<UITextViewDelegate>

次に、.m で、次のような方法でクラスをデリゲートとして設定する必要があります。

textView.delegate = self;

次に、.m にデリゲート メソッドを実装する必要があります。具体的には、次のとおりです。

textViewDidChange:

詳細については、 http://developer.apple.com/library/ios/#documentation/uikit/reference/UITextViewDelegate_Protocol/Reference/UITextViewDelegate.htmlのプロトコル リファレンスを参照してください。

于 2012-03-16T12:28:59.117 に答える