Ios 未在UITextView委托方法中执行if/else语句

Ios 未在UITextView委托方法中执行if/else语句,ios,objective-c,if-statement,uitextview,uitextviewdelegate,Ios,Objective C,If Statement,Uitextview,Uitextviewdelegate,我的objective-c代码中有一个if/else语句。if/else语句的运行方式如下: -(void)textViewDidBeginEditing:(UITextView *)textView { if(textView==self.heardTextView) { NSString *string = textView.text; if ([string rangeOfString:@"CLOSER"].location == NSNot

我的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
等于某个单词,则某些代码将运行。但这段代码没有运行


我在我的代码上放置了一个
断点
,一个
NSLOG
却什么都没有

检查文本字段委托如果未设置委托,则不会调用该委托

在Viewcontroller.H中

选择您的文本视图在文本视图上授予代理


首先需要设置文本视图的委托。您可以使用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];

请检查您的委托,您不能将textview的委托设置为self。再检查一遍。或者您可能对其他类执行了操作。

您的意思是整个方法不执行,还是if语句中的内容不执行?您是否将对象设置为文本视图的委托?整个方法不执行您所说的将对象设置为文本视图的委托是什么意思?他的意思是您提供的代码可能属于
UIViewController
子类。那么,您是否a)Ctrl从
UITextView
拖动到视图控制器并使
代理连接,b)改为在代码中执行,或者c)忘记执行此操作?您得到了您的anasweri,您所说的一切都已实现。但仍然没有运行给我你的skype id