gpt4 book ai didi

macos - NSTextView 不接收字符串

转载 作者:行者123 更新时间:2023-12-03 16:42:49 24 4
gpt4 key购买 nike

我正在编写一个基本的文本编辑器,需要实现一个阅读方法。由于我使用的是 NSDocument,我决定重写方法 - (BOOL)readFromData:(NSData *)data ofType:(NSString *)typeName error:(NSError **)outError

下面是我的方法代码:

- (BOOL)readFromData:(NSData *)data ofType:(NSString *)typeName error:(NSError **)outError
{
BOOL readSuccess = NO;
NSString *fileContents = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

if (!fileContents && outError) {
*outError = [NSError errorWithDomain:NSCocoaErrorDomain code:NSFileReadUnknownError userInfo:nil];
}

if (fileContents) {
readSuccess = YES;

[textView setString: fileContents];
NSLog(@"%@",[textView string]);
}
return YES;
}

NSLog 返回 NULL。我已将 xib 中的 textView 对象连接到 textView 属性文件的所有者(即 NSDocument 子类)。我的代码有什么问题吗?

我的源文件只是 NSDocument 子类接口(interface)和实现文件(GNDocument.h 和 .m)。我有两个 xib 文件:MainMenu.xib 和 GNDocument.xib(文件所有者设置为 GNDocument)。我能够将字符串 NSLog 到控制台。唯一的问题似乎是 NSTextView 没有连接到文件的所有者,即使我已经完成了连接(从文件所有者的 textView 属性拖动到 NSTextView)。

我希望有人能启发我,因为我真的不明白为什么它不起作用。请给我指出正确的方向,或者至少一些提示。谢谢。

最佳答案

我找到了答案。连接没有问题。发生的情况是,在我使用

读取文件后
- (BOOL)readFromData:(NSData *)data ofType:(NSString *)typeName error:(NSError **)outError  

然后我应该将 String: 设置为中的 textView 对象

- (void)windowControllerDidLoadNib:(NSWindowController *)aController

我需要将从文件中读取的字符串保存在另一个 NSString ivar 中,以便可以将其传递给 windowControllerDidLoadNib 方法。

我之前做错的地方是我在打开和读取文件方法相同的方法中设置了String:,这是在windowController加载nib文件之前。因此,textView 在此之前并不存在。

关于macos - NSTextView 不接收字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12340248/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com