如何将文本字段绑定到包含一行的一个核心数据实体的属性?

     2023-03-04     29

关键词:

【中文标题】如何将文本字段绑定到包含一行的一个核心数据实体的属性?【英文标题】:How to bind textfields to attributes of one core data entity containing one row? 【发布时间】:2011-09-06 02:56:20 【问题描述】:

我有一个视图想要显示我的应用的汇总使用数据。方便的是,我有一个可可核心数据实体,其中预先汇总了所有使用数据(因此它只有一行)。我想将实体中的每个单独属性绑定到不同的 NSTextFields(例如不在 NSTableView 中)。

这似乎不是核心数据+界面构建器很好处理的使用模式。到目前为止,我正在做的是将我的聚合属性复制到 NSUserDefaults 并将我的文本字段绑定到默认值。我想要一种更好、更优雅的方式来做到这一点。

还有更好的想法吗?我需要用一个大胖子的线索打我的头吗?

一如既往地感谢您的阅读...

【问题讨论】:

你看过苹果提供的Recipes核心数据示例程序了吗? 不,我没有。我假设您的意思是 this -- 会检查一下 现在我已经看过了,但它并没有抓到这种特别的痒。 啊,我想我记得在那里看到过类似的东西。 数据绑定示例做了我见过的所有绑定示例所做的事情——通过 nsarraycontroller 将所有数据绑定到一个表。 (然后字段被绑定到数组中的选定对象。)所以另一种方法是在对话框上隐藏一个表....hack hack hacky... 【参考方案1】:

好吧,我只是用自己的大胖子线索打了自己的头。 解决方案是使用 NSObjectController。

    将 NSObjectController 的实例作为 IBOutlet 添加到 NSWindowController 实现中。 将 NSObjectController 添加到对话框的 xib 并将字段绑定到它。 将视图/窗口控制器(文件所有者)中的 NSObjectController 链接到 xib 中的 NSObjectController。 实现控制器的 windowDidLoad。

在我的情况下,它在标题中看起来像这样:

NSObjectController *dataCtrl;
...
@property (nonatomic, retain) IBOutlet NSObjectController *dataCtrl;

在实现中像这样

    @synthesize dataCtrl;
    ...
    - (void)windowDidLoad
    
        NSManagedObject *totals = [StatsSupport getTotalRecord];
        [[self dataCtrl] setContent:totals];   // where the rubber meets the road
        [super windowDidLoad];
    

当然,+[StatsSupport getTotalRecord] 是您的基本核心数据获取类型代码,如果您读到这里,您就会知道它的外观。 (它可能已经存在,因为您需要此代码或类似的代码来执行正常的数据读取/更新)

最后跳一段快乐的舞蹈,因为你让可可为你做了一些工作。

【讨论】:

【参考方案2】:
-(void)updateFields 
  // fetch the row from the persistent store into your custom object
  // then get a reference to the data in your object, e.g.
  MyDataObject *data = [resultsArray objectAtIndex:0];

  myTextField1.text = [NSString stringWithFormat:@"%d", [data.anIntegerValue intValue]];
  myTextField2.text = data.aTextValue; 
  // etc...

【讨论】:

我猜优雅是指没有代码或几乎没有代码。我现在正在做的是关于这么多代码(将我的数据复制到用户默认值中)。我正在尝试实现绑定的极少代码潜力。 总的来说,Objective C 是一种相当“冗长”的语言。我有点习惯了。我认为这是有意的,它确实使阅读代码更容易。 是的,确实很冗长——在类中声明,“@property”+“@synthesize”。我对此很好。 Interface Builder 是一个可用 gui 工具,我想尽可能多地利用它......因此这篇看似不切实际的 SO 帖子。

如何将同一个xib文件绑定到不同的核心数据实体

】如何将同一个xib文件绑定到不同的核心数据实体【英文标题】:Howtobindthesamexibfiletodifferentcoredataentities【发布时间】:2012-03-3007:44:32【问题描述】:我的核心数据中有4个实体具有相同的父实体。它们几乎具有相同的属性。对于... 查看详情

核心数据迁移:将字段提取到抽象实体子项

】核心数据迁移:将字段提取到抽象实体子项【英文标题】:CoreDataMigration:Extractingfieldstoanabstractentitychild【发布时间】:2010-06-2218:22:44【问题描述】:我有一个迁移,我将字段从一个实体移动到另一个实体,该实体是抽象实体的... 查看详情

如何将来自多个视图控制器的数据保存到单个核心数据实体中

】如何将来自多个视图控制器的数据保存到单个核心数据实体中【英文标题】:Howtosavedatafrommultipleviewcontrollersintoasinglecoredataentity【发布时间】:2017-07-1119:39:55【问题描述】:我有一个实体,它具有从5个视图控制器填充的属性。... 查看详情

以编程方式添加到核心数据实体(如 IB 绑定“添加”)

】以编程方式添加到核心数据实体(如IB绑定“添加”)【英文标题】:ProgrammaticallyaddingtoaCoreDataentity(likeIBbinding\'add\')【发布时间】:2011-02-2113:54:43【问题描述】:我有一个核心数据模型,其中包含一个名为clients的实体,它由... 查看详情

将核心数据值传递到文本字段以进行编辑/保存

】将核心数据值传递到文本字段以进行编辑/保存【英文标题】:Passcoredatavaluesintotextfieldsforediting/saving【发布时间】:2017-10-1504:24:40【问题描述】:我是使用Xcode和swift的新手,还在学习。我无法将核心数据从实体传递到文本字段... 查看详情

如何将 NSTreeController 的孩子绑定到订购到多关系的核心数据?

】如何将NSTreeController的孩子绑定到订购到多关系的核心数据?【英文标题】:HowtobindNSTreeController\'sChildrentoCoreDataorderedto-many-relationship?【发布时间】:2011-08-1211:02:19【问题描述】:Apple在Lion的CoreData中引入了有序对多关系。我创... 查看详情

如何使用 swiftui 将文本字段存储到核心数据中

】如何使用swiftui将文本字段存储到核心数据中【英文标题】:Howtostoretextfieldintocoredatawithswiftui【发布时间】:2020-01-0615:57:03【问题描述】:当输入TextField时,我无法完成将值与核心数据一起存储,并在进入视图时再次显示的任... 查看详情

birt将两个数据集中的字段报告/组合到一个动态文本框中(代码片段)

...每个数据集中的一个字段合并为一个,我似乎无法弄清楚如何做到这一点。有任何想法吗?应该是这样的:DS1.Field/DS2.Field非常感谢。答案假设您可以访问网格G内的DS1。您可以将动态文本项T放在G的单元格中,并将此项目T绑定到D... 查看详情

如何将 NSOutlineView 与多个核心数据实体作为组一起使用

】如何将NSOutlineView与多个核心数据实体作为组一起使用【英文标题】:HowtouseNSOutlineViewwithmultiplecoredataentitiesasgroups【发布时间】:2018-08-1219:57:40【问题描述】:我一直在研究如何使用多个实体从核心数据中填充源列表。如果我... 查看详情

如何将图像绑定到 SwiftUI 中的下一个视图?

】如何将图像绑定到SwiftUI中的下一个视图?【英文标题】:HowtobindanimagetothenextviewinSwiftUI?【发布时间】:2021-05-1208:27:02【问题描述】:尝试创建带有文本字段的入职视图流以捕获配置文件数据,并在最后一个视图中将数据存储... 查看详情

将快速添加方法包含到 UITableView 的方法

...布时间】:2014-01-1719:03:29【问题描述】:我需要添加一个文本字段和一个按钮以显示在tableview上,或者拉下tableview并在tableview上方显示一个文本字段和一个按钮。文本字段和按钮的目的应该是允许用户将核心数据对象添加到商店... 查看详情

使用表格视图将两个属性的信息添加到单个核心数据实体中的有效方法

...的AppPremise-允许用户使用FetchedResultsController和CoreData向4个文本字段提 查看详情

使用 NSDocument 时如何将情节提要视图绑定到 Core Data 实体?

】使用NSDocument时如何将情节提要视图绑定到CoreData实体?【英文标题】:HowdoyoubindastoryboardviewtoaCoreDataentitywhenusingNSDocument?【发布时间】:2016-02-0302:02:48【问题描述】:我正在构建一个使用核心数据、NSDocument、故事板和Cocoa绑定... 查看详情

将实体属性数据保存到核心数据后如何保留它

】将实体属性数据保存到核心数据后如何保留它【英文标题】:Howtokeepentitypropertiesdataaftersaveitoncoredata【发布时间】:2018-09-2001:26:03【问题描述】:我正在创建一个UserEntity的实体:letuserEntity=UserEntity(context:managedContext)userEntity.user... 查看详情

如何将 TextBlock 绑定到包含格式化文本的资源?

】如何将TextBlock绑定到包含格式化文本的资源?【英文标题】:HowtobindaTextBlocktoaresourcecontainingformattedtext?【发布时间】:2011-07-3018:27:01【问题描述】:我的WPF窗口中有一个TextBlock。<TextBlock>Some<Bold>formatted</Bold>text.<... 查看详情

核心数据、绑定、NSArrayController 和表视图 - 如何生成核心数据上下文的视图

】核心数据、绑定、NSArrayController和表视图-如何生成核心数据上下文的视图【英文标题】:Coredata,bindings,NSArrayControllerandtableviews-howtogenerateaviewofacoredatacontext【发布时间】:2012-03-2313:09:12【问题描述】:我有一个工作系统,可以... 查看详情

保存已编辑的核心数据实体未保存

...户按下“Enter”键时调用。此回调应将他们刚刚在单元格文本字段中键入的文本 查看详情

具有多个文本字段的多个单元格到核心数据属性

】具有多个文本字段的多个单元格到核心数据属性【英文标题】:Multiplecellswithmultipletextfieldstocoredataattributes【发布时间】:2012-09-2023:03:15【问题描述】:我有一个包含9个单元格的表格视图,并且在每个单元格中我至少有2个文本... 查看详情