我将剪贴板的内容分配给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];
}
答案 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。