2011-11-15 36 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]]; }

相關問題