NSTextView的NSTextStorage返回null

时间:2013-05-16 00:46:35

标签: xcode macos nstextview

我正在关注developer.apple.com上的OSX教程系列并遇到了问题。当我将文本粘贴或键入NSTextView并尝试将其发送到常规粘贴板时,NSTextView返回一个空字符串。然后,我试图查看NSTextStorage是否为null,它也返回为null。以下是h和m文件的相关部分。

// Document.m
#import "Document.h"

@implementation Document

@synthesize the_view;   //NSTextView
@synthesize showStuff;  //NSScrollView


- (IBAction)copy2:(id)sender {
  NSLog(@"copying");

  NSTextStorage *ts = [the_view textStorage];
  if( ts )
    NSLog(@"not null");

  NSString *text = [[the_view textStorage] string];

  NSLog(@"%@",text);

  //NSString *text = @"okay";

  NSPasteboard *pb = [NSPasteboard generalPasteboard];
  [pb declareTypes:[NSArray arrayWithObjects:NSStringPboardType, nil] owner:nil];
  [pb setString:text forType:NSStringPboardType];
}

//Document.h
#import <Cocoa/Cocoa.h>

@interface Document : NSDocument
{
  NSTextView *the_view;
}

@property (nonatomic, retain) IBOutlet NSTextView *the_view;

- (IBAction)copy2:(id)sender;

- (IBAction)paste2:(id)sender;

@property (weak) IBOutlet NSScrollView *showStuff;

@end

上面你会注意到我有一个注释掉的字符串“text”的版本设置为“okay”。如果我使用它,“okay”这个词放在普通的粘贴板上。

所以我的问题是,当NSTextView中存在有效文本时,如果你能发现NSTextStorage为什么会返回null的任何原因。感谢帮助。

0 个答案:

没有答案