Objective-C中的OSX桌面ap ...
我认为这是一个基本问题,但即使花了很多时间在KVO指南和各种相关问题之后,我仍然可以完全围绕这个特殊情况下的情况进行整理。 (或者,这只是糟糕的形式,我应该停止)
创建一个自定义类,让我们调用它" OtherClass"给它一个属性:
@interface OtherClass : NSObject{}
@property NSString* aString;
在ViewController中,创建此自定义类的实例
oc = [[OtherClass alloc] init];
我想要发生的事情是,无论何时调用[oc setAString:@" SomeValue"]等内容,都会更新UI,但是当值发生变化时,文本字段不会更新。
对于它的价值,实际用例是一个单例类,它是外部硬件的管理器。我希望能够将我的程序的其他部分(例如,硬件代码内部)更新硬件状态更改时的状态字符串。如果我可以将UI字段绑定到" viewController.hardwareMgr.status"那将是非常好的。然后调用" [hardwareMgr setStatus:@" allGood"]"我喜欢的任何地方,并完成它。
我从概念上理解问题是笔尖没有收到更新通知,但我不确定解决此问题的最佳方法。我当然可以在viewController上手动注册一个监听器,并且可以将它用于"代理"更新到viewController上的本地属性,但这看起来很尴尬。由于我的经理类是单身人士,我还可以创建另一个"实例"在IB内部并绑定到此,但由于不同的原因这似乎很尴尬,不适用于非单身案例。
如何实现这一目标,或者这种模式只是一个坏主意?