gpt4 book ai didi

objective-c - 从 controlTextDidEndEditing 委托(delegate)方法访问 NSArrayController 的绑定(bind)数组

转载 作者:行者123 更新时间:2023-12-03 17:38:18 34 4
gpt4 key购买 nike

我有一个具有 23 列 NSTableView 的应用程序。 NSTableView 的内容绑定(bind)到 IB 中的 ArrayController.arrangedObjects。此外,表中包含的每个 NSTextFieldCell 都有绑定(bind)到 Table Cell View objectValue.someKey 的值。我的其中一列具有可编辑值,因此,我实现了 controlTextDidEndEditing 委托(delegate)方法。另一个表列包含错误文本,并且它绑定(bind)到 objectValue.errorText。

上面提到的 ArrayController 有一个绑定(bind)到 NSMutableArray 的内容数组,它是我的 ViewController 的属性。该数组包含“Event”对象的集合,这些对象在应用程序启动时定义和验证。

因此controlTextDidFinishEditing:方法有一个通知参数,在本例中是调用它的NSTextField。我想在此方法中执行的操作是访问底层“Event”对象,该对象包含在绑定(bind)到 ArrayController 的 NSMutableArray 中,并将“Event”对象的错误文本属性设置为 @""。

我想这有一个非常简单的答案,但我正在努力尝试正确地表达我的 Google 查询以产生我正在寻找的答案。

最佳答案

这个问题已经有了答案,但如果 future 的读者想知道绑定(bind)的对象,他们可以检查文本字段的绑定(bind)。

- (void)controlTextDidEndEditing:(NSNotification *)aNotification
{
NSTextField *textField = [aNotification object];
NSDictionary* dictionary = [textField infoForBinding:NSValueBinding];
NSTableCellView *tableCellView = [dictionary objectForKey:NSObservedObjectKey];
NSString *keyPath = [dictionary objectForKey:NSObservedKeyPathKey];
Event* modifiedEvent = tableCellView.objectValue;
[modifiedEvent setTextColor:[NSColor blackColor]];
[modifiedEvent setErrorMessage:@""];
}

关于objective-c - 从 controlTextDidEndEditing 委托(delegate)方法访问 NSArrayController 的绑定(bind)数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33616525/

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