UITextView hasText不工作?

时间:2009-11-03 04:36:21

标签: iphone cocoa-touch

我将剪贴板的内容分配给UITextView文本属性。但是,当我检查hasText属性时,条件始终为false。

NSString paste_text = [[NSString alloc] init];
self.paste_text = [UIPasteboard generalPasteboard].string; 

....

my_UITextView.text = self.paste_text;


//THIS CONDITION IS ALWAYS FALSE

if (my_UITextView hasText)
    { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:
            @"Text ready to copy"
            message:err_msg
            delegate:nil
            cancelButtonTitle:@"OK"
            otherButtonTitles:nil];

      [alert show];
    }

3 个答案:

答案 0 :(得分:3)

您需要使用括号发送您的UITextView hasText消息:

if ([my_UITextView hasText])

<强>更新

你知道你的UTTextView有文字吗?您可能想在控制台上查看它:

my_UITextView.text = self.paste_text;

NSLog(@"my_UITextView.text = %@",my_UITextView.text); // check for text

//THIS CONDITION IS ALWAYS FALSE

if ([my_UITextView hasText])

答案 1 :(得分:1)

首先,你的paste_text没有按预期使用,因为你分配后,它会被立即丢弃,可能会被释放,也许不会被释放。你实际上可以取消[[NSString alloc] init];

然后添加以下代码来测试您的代码:

// delete:
//     NSString paste_text = [[NSString alloc] init];
NSLog([UIPasteboard generalPasteboard].string);
    self.paste_text = [UIPasteboard generalPasteboard].string; 

NSLog(self.paste_text);
    ....

    my_UITextView.text = self.paste_text;

NSLog(@"my_UITextView is %@, text contained: %@, my_UITextView , my_UITextView.text);

第一个NSLog打印出粘贴板字符串,第二个字符串一旦传递到paste_text,最后一个会告诉您my_UITextView是否为非零,以及它包含的内容。

另外,如果paste_text是@property,它的属性是什么?需要将[UIPasteboard generalPasteboard].string中的文本复制到其中,否则当粘贴板的字符串更改时,paste_text也是如此。

答案 2 :(得分:0)

您是如何创建我的UITextView属性的?如果您在Interface Builder中执行此操作,则可能忘记创建IBOutlet。