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