我的objective-c代码中有一个if / else语句。 if / else语句的运行方式如下:
-(void)textViewDidBeginEditing:(UITextView *)textView
{
if(textView==self.heardTextView)
{
NSString *string = textView.text;
if ([string rangeOfString:@"CLOSER"].location == NSNotFound)
{
NSLog(@"closest");
}
}
}
if / else语句的前提是 - 如果textview
等于某个单词将运行某个单词。但是这段代码没有运行。
我在代码和breakpoint
上放了一个NSLOG
而没有。
答案 0 :(得分:0)
答案 1 :(得分:0)
首先,您需要设置文本视图的委托。您可以使用Interface Builder执行此操作,但如果您更喜欢使用代码,则可以使用视图控制器的viewDidLoad
方法执行此操作:
myTextView.delegate = self;
现在,您何时希望执行NSLog
语句?现在它看起来只有在你键入“CLOSER”时才会运行,然后让文本视图失去焦点,然后再次点击它。
如果您希望在键入时运行NSLog
,则应使用:
-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
同样要小心,在测试其内容之前,您需要在文本字段中计算下一个字符串值:
NSString *finalText = [textField.text stringByReplacingCharactersInRange:range withString:string];
答案 2 :(得分:0)
检查您的代表,您不能将textview的代表作为自己。再次检查一下。或者你可能已经完成了其他一些课程。