我想从UItextview中取消键盘。如何以编程方式实现UItextView委托方法。
答案 0 :(得分:6)
如果你想点击返回时你的键盘被重新签名那么你必须写,实现这个方法....
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
if([text isEqualToString:@"\n"]) {
[textView resignFirstResponder];
return NO;
}
return YES;
}
只需将其复制并粘贴....:)
答案 1 :(得分:5)
确保声明支持UITextViewDelegate
协议。
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
if([text isEqualToString:@"\n"]) {
[textView resignFirstResponder];
return NO;
}
return YES;
}
答案 2 :(得分: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阅读协议参考,以获取更多信息。
答案 3 :(得分:4)
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;
}