【问题标题】:MVC architecture question for Mac applicationMac 应用程序的 MVC 架构问题
【发布时间】:2008-11-27 09:58:22
【问题描述】:

我有一个控制器类,我从中调用模型类的方法。现在,我想从这个模型类方法中不断更新作为控制器类数据成员的 textView 对象。我在控制器类中有方法来编辑这个 textView。我尝试从模型类方法创建一个控制器对象并编辑了 textView。虽然我没有收到任何错误,但它没有在 textView 中显示文本。如何让模型类使用控制器类方法连续显示文本..??是不是我正在创建一个本地控制器对象并引用它的 textView 而不是原始控制器对象。

Controller.m 文件:

- (void) notifyContentHasChanged:(NSInteger) block {
    NSString *str;
    str = [NSString stringWithFormat:@"Block Written Successfully: %d\n", block];
    [data insertText:str];
}

Model.m 文件:

Controller * c = [[Controller alloc] init];
while (USB_SUCCESS(status)){
    DfuBlockCnt++;
    printf("\nBlocks Written Successfully: %d",DfuBlockCnt);
    [c notifyContentHasChanged:DfuBlockCnt];
}

【问题讨论】:

    标签: objective-c cocoa macos


    【解决方案1】:

    您应该考虑使用 KVO - 键值观察 - 这样您就可以让观察者为您完成所有工作。

    我想知道您与 NSTextView 的连接是否丢失 - 如果您尝试将消息传递给 Objective C 中的 nil 对象,它不会给您错误。

    【讨论】:

      猜你喜欢
      • 2015-08-18
      • 1970-01-01
      • 1970-01-01
      • 2012-11-25
      • 2011-02-02
      • 2011-08-06
      • 1970-01-01
      • 1970-01-01
      • 2013-01-31
      相关资源
      最近更新 更多