我使用下面的代碼,但是當我開始編輯的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