Ren*_*enc 14 cocoa interface-builder nsview ibplugin cocoa-bindings
我创建了NSView的子类来将图像绘制为模式:
@interface CePatternView : NSView
{
NSImage* image;
id observableObjectForImage;
NSString* keyPathForImage;
}
@end
Run Code Online (Sandbox Code Playgroud)
我实现了以下内容来公开绑定:
+ (void)initialize
{
// Expose the "image" binding to IB.
[self exposeBinding:@"image"];
}
- (Class)valueClassForBinding:(NSString *)binding
{
if([binding isEqualToString:@"image"])
return [NSImage class];
return nil; // Unknown binding
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,图像绑定不会出现在Interface Builder中.
我是否真的必须创建一个IBPlugin来在Interface Builder中公开绑定?对于我不打算重用的自定义视图来说,这似乎有些过分.
Pet*_*sey 14
标题回答:不,你可以在没有IB插件的情况下绑定自定义视图(在代码中执行).
回答问题正文中的问题:是的,您确实需要一个IB插件来暴露IB中的绑定.
您的代码不会在Interface Builder中运行,除非您将其放入Interface Builder中,并且该exposeBinding:消息是您的代码.因此,您需要将其放入Interface Builder中.这意味着要编写IB插件.
此外,IB插件与旧的IB调色板不同.插件需要IB 3,并且更容易创建.调色板需要IB 2并且创建起来很痛苦.
小智 12
我只是使用不同的标准绑定(例如,toolTip)将我的控制器对象绑定到我的视图对象,然后使用文本编辑器编辑XIB文件并手动更改XML.
此后,绑定正常工作,甚至可以在Interface Builder中正确显示以启动!
| 归档时间: |
|
| 查看次数: |
5551 次 |
| 最近记录: |