2011-11-15 38 views
4

我使用下面的代码,但是当我开始编辑的UITextView不被认可:如何检查UITextView何时被编辑?

-(void)textViewDidBeginEditing:(UITextView *)textView{ 

[done setHidden:NO]; 

NSLog(@"Started editing target!"); 

} 

这是为什么?

我也将代理添加到.h文件。

+1

你确定你设置包含此法为代表的'UITextView'类? – trojanfoe

+0

你是什么意思? :) – pixelbitlabs

+0

您发布的方法是'UITextView'委托协议('UITextViewProtocol')的一部分。为了使其工作,您需要将控件的委托设置为您发布的类。 – trojanfoe

回答

5

尝试设置您的UITextView的委托。您需要将出口连接到代表在Interface Builder,或者如果您以编程方式创建它,您可以:

yourTextView.delegate = self; 

设置委托你插入你的元素控制器。

+0

谢谢!我没有意识到这一点:) – pixelbitlabs

+0

不客气@reddexuk –

2

确保您:

  1. nameOfTextView .delegate =自我;
  2. 显示你在你的类使用UITextViewDelegate编译
0

也可能是“咄”的答案,但如果你在IB创建你的TextView,你记得连接插座吗?

5
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 
+0

这是行不通的。 UITextView不响应isFirstResponder – d2burke

+0

@ d2burke你确定吗?看到我的更新。 – ohho

+0

你说得对,我读了一个东西,测试了(失败)并误解了另一件事情,并且急匆匆地评论道。我也更新了我的投票/倒票。谢谢你的支持,并为我的草率而道歉。如果文本视图位于表视图内,则 – d2burke

1
  1. Firstly you have to set UIViewController <UITextViewDelegate>
  2. Set

    yourTextview.delegate = self;

  3. And catch this delegate using

    -(void)textViewDidBeginEditing:(UITextView *)textView { [self.yourTextview setText:@""]; [yourTextview setTextColor:[UIColor blackColor]]; }

相关问题