我使用下面的代码,但是当我开始编辑的UITextView不被认可:如何检查UITextView何时被编辑?
-(void)textViewDidBeginEditing:(UITextView *)textView{
[done setHidden:NO];
NSLog(@"Started editing target!");
}
这是为什么?
我也将代理添加到.h文件。
我使用下面的代码,但是当我开始编辑的UITextView不被认可:如何检查UITextView何时被编辑?
-(void)textViewDidBeginEditing:(UITextView *)textView{
[done setHidden:NO];
NSLog(@"Started editing target!");
}
这是为什么?
我也将代理添加到.h文件。
尝试设置您的UITextView的委托。您需要将出口连接到代表在Interface Builder,或者如果您以编程方式创建它,您可以:
yourTextView.delegate = self;
设置委托你插入你的元素控制器。
谢谢!我没有意识到这一点:) – pixelbitlabs
不客气@reddexuk –
确保您:
也可能是“咄”的答案,但如果你在IB创建你的TextView,你记得连接插座吗?
if ([self.textView isFirstResponder]) ...
更新:我包括完整的源代码来表示的UITextView肯定响应isFirstResponder @ d2burke
#import "TextViewController.h"
@interface TextViewController()
@property (nonatomic, retain) IBOutlet UITextView *textView;
@end
@implementation TextViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (IBAction)click:(UIButton *)check
{
BOOL isActive = [self.textView isFirstResponder];
NSLog(@"%d", isActive);
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
Firstly you have to set UIViewController <UITextViewDelegate>
Set
yourTextview.delegate = self;
And catch this delegate using
-(void)textViewDidBeginEditing:(UITextView *)textView { [self.yourTextview setText:@""]; [yourTextview setTextColor:[UIColor blackColor]]; }
你确定你设置包含此法为代表的'UITextView'类? – trojanfoe
你是什么意思? :) – pixelbitlabs
您发布的方法是'UITextView'委托协议('UITextViewProtocol')的一部分。为了使其工作,您需要将控件的委托设置为您发布的类。 – trojanfoe