是否可以将控件、AppDelegate 和 UserDefaults 无代码绑定在一起?

发布于 2024-11-18 12:52:06 字数 673 浏览 1 评论 0原文

我有一个像这样的 AppDelegate

@interface AppDelegate : NSObject <NSApplicationDelegate> {
    NSString *boundValue;
}
@property (nonatomic, retain) NSString *boundValue;

@end

稍后我将在 AppDelegate 中使用 boundValue 进行一些实时计算。在主 .xib 中,我还有 NSTextField 控件。

所以现在我想将 NSTextFieldUserDefaults.boundValue 键绑定到我的 AppDelegate.boundValue。当然,我想用最少的代码编写来做到这一点。

我找到了如何将 NSTextField 绑定到 AppDelegateUserDefaults 的方法。但是如何将 AppDelegate 绑定到 UserDefaults 呢?如何将这三部分(控制 + 委托 + 默认值)连接在一起,而无需额外的代码行?

I have an AppDelegate like this:

@interface AppDelegate : NSObject <NSApplicationDelegate> {
    NSString *boundValue;
}
@property (nonatomic, retain) NSString *boundValue;

@end

I will use boundValue for some real-time calculations later inside AppDelegate. In main .xib I also have NSTextField control.

So now I'd like to bind both NSTextField and UserDefaults.boundValue key to my AppDelegate.boundValue. And of course I'd like to do that with minimal code writing.

I have found the way how to bind NSTextField either to AppDelegate or to UserDefaults. But how can I bind AppDelegate to UserDefaults? How to wire these three pieces — control + delegate + defaults — together without additional lines of code?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

画中仙 2024-11-25 12:52:06

您需要一些额外的代码:

@property (nonatomic, retain) IBOutlet NSString *boundValue;

现在您可以根据需要在 IB 中连接,当然前提是 appDelegate 和 userDefaults 在 main.xib 中由那些绿色和蓝色立方体表示。

编辑:
这里有一个关于绑定用户首选项的非常好的教程:在 Cocoa 中绑定你的首选项

You'll need a little bit of extra code:

@property (nonatomic, retain) IBOutlet NSString *boundValue;

Now you can connect in IB as you wish, provided of course appDelegate and userDefaults are represented in main.xib by those green and blue cubes.

Edit:
Here's quite a nice tutorial on binding user preferences: Binding your preferences in Cocoa

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文