我是LAMP的开发人员,但对Cocoa来说是新手,并且通常会构建桌面应用程序。整个星期都在玩XCode和IB,制作一个简单的任务管理器来学习框架并熟悉Objective-C。完成cocoadevcentral上的大部分教程,浏览Apple Docs并阅读Mac OSX的Cocoa Programming。
我已经成功构建了DataModel(使用Core Data),具有2个NSTableViews(项目和任务)的UI,为两个TableView添加/删除按钮,并连接了NSArrayControllers和TableView之间的绑定。我可以在每个项目中添加项目和任务。像魅力一样。
数据模型:
我只是遗漏了一些东西。我一直在寻找如何在呈现之前以及当用户点击NSTableViews中的行或列时以编程方式更改UI元素的绊脚石。我知道如何在XCode中创建一个类并将其绑定为IB中的委托。我可以回应的内容似乎有点受限。我已经将数据模型中的项目实体子类化,以尝试检测插入&从NSTableView中删除,但这似乎不是正确的方法。
我正在测试的子类:
// ProjectManagedObject.h
#import <Cocoa/Cocoa.h>
@interface ProjectManagedObject : NSManagedObject {
}
@end
// ProjectManagedObject.m
#import "ProjectManagedObject.h"
@implementation ProjectManagedObject
- (void)awakeFromInsert
{
[super awakeFromInsert];
NSLog(@"new project inserted");
}
- (void)awakeFromFetch
{
[super awakeFromFetch];
NSLog(@"project awakeFromFetch");
}
- (BOOL)validateForDelete:(NSError **)error
{
NSLog(@"project: validating for delete");
return YES;
}
@end
我也知道通知以及它们基本如何工作。还没有测试过它们。但我想知道接下来我需要做什么(委托,通知,子类,??)从我创建的类中访问UI对象以执行以下操作:
我现在非常感谢任何有关我现在需要采取的方向和/或如何解决上述问题的方法。感谢。
答案 0 :(得分:0)
你的三点回答:
NSTableView
进入编辑模式