-1

我有一个带有大 NSTextFeildCell 的窗口,可以在其中修改文本。单击按钮后,会出现另一个窗口,其中可以以某种方式使用原始窗口中的文本。我遇到的问题是当我尝试检索日志吐出的文本时......

“ -[NSTextView stringValue]: unrecognized selector sent to instance 0x100151860” 被长期跟踪...

我尝试过几种不同的方法来解决这个问题,但没有运气。

目前,

第一个窗口控制器

。H

#import <Cocoa/Cocoa.h>
@class NextWindowController;
@interface TextViewWindowController : NSWindowController
@property (nonatomic, weak) NextWindowController *NextWindow;
@property (nonatomic, weak) IBOutlet NSTextFieldCell *txtTextView;

- (IBAction)btnClicked:(id)sender;
- (NSString*)getText;
@end

.m

#import "TextViewWindowController.h"
#import "NextWindowController.h"
@implementation TextViewWindowController
@synthesize NextWindow;
- (IBAction)btnClicked:(id)sender{
   [NextWindow setCallingWindow:self];
   [NextWindow showWindow:self];
}
- (NSString*)getText{
   return [_txtTextView stringValue];// there is a problem with the view...
}
@end

下一个窗口控制器

。H

#import <Cocoa/Cocoa.h>
@class TextViewWindowController;
@interface NextWindowController : NSWindowController{
   NSMutableString* str;
}
@property (nonatomic, weak) TextViewWindowController *callingWindow;
@end

.m

#import "NextWindowController.h"
#import "TextViewWindowController.h"
@implementation NextWindowController
@synthesize callingWindow;
- (IBAction)btnEnterClicked:(id)sender{
   [str setString:callingWindow.txtTextView.stringValue];
}

- (id)initWithWindow:(NSWindow *)window{
    self = [super initWithWindow:window];
    if (self) {
       str = [[NSMutableString alloc] init];
    }
    return self;
}
@end

我也试过 str = [callingWindow getText] 具有相同的结果。

任何帮助将不胜感激!

4

1 回答 1

1

从 Apple 的文档中找出并不是非常直观,但是要获取 NSTextView (继承自 NSText)的原始字符串值,只需使用:

[_txtTextView string];

而且由于您使用的是属性,因此在函数中使用访问器可能会更聪明,如下所示:

- (NSString*)getText{
   return [self.txtTextView string];
}
于 2013-07-03T21:16:12.173 回答