Cocoa 使用NSUserDefaults存储NSTextView的内容

Cocoa 使用NSUserDefaults存储NSTextView的内容,cocoa,nsuserdefaults,Cocoa,Nsuserdefaults,我一直在玩弄苹果的示例代码——UserDefaults——但我无法通过移除record按钮使其与NSTextView实例一起工作,因此我想知道如何让NSUserDefaults自动存储NSTextView的内容 提前谢谢 没有办法自动存储它。下面是通过子类化NSTextView保存内容的简单方法: @interface myTextView : NSTextView @end @implementation myTextView - (void)awakeFromNib { NSU

我一直在玩弄苹果的示例代码——UserDefaults——但我无法通过移除record按钮使其与NSTextView实例一起工作,因此我想知道如何让NSUserDefaults自动存储NSTextView的内容


提前谢谢

没有办法自动存储它。下面是通过子类化NSTextView保存内容的简单方法:

@interface myTextView : NSTextView 
@end

@implementation myTextView

- (void)awakeFromNib
{
    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
    NSString    *string = nil;
    if (userDefaults) 
        string = [userDefaults objectForKey:@"Prefs"];
    if ([string length])
        [self setString:string];
}

- (void)didChangeText
{
    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];

    if (userDefaults) {
        [userDefaults setObject:[self string] forKey:@"Prefs"];
    }
}

@end
编辑


已删除
同步

等等,您是否有/知道任何证明这一点的源代码?非常感谢您抽出时间<代码>同步不应像此处那样调用。从文档中:定期自动调用的
synchronize
方法使内存缓存与用户的默认数据库保持同步。并且:由于此方法(
同步
)是定期自动调用的,因此仅当您无法等待自动同步(例如,如果您的应用程序即将退出)或即使未做任何更改也要将用户默认值更新为磁盘上的值时,才使用此方法。确定。。。您能从某处推荐替代代码和/或工作示例吗?非常感谢@dbramhall:“等等,你有/k…演示过吗?”-没有。我从我的项目中复制了这段代码,并对它进行了一些修改@dbramhall:“好的……你能建议其他代码和/或工作吗……”-我忘了删除这行:
[userDefaults synchronize]@nacho4d:Thx。我忘了把它从这里移走。