当前位置:  开发笔记 > IOS > 正文

绑定自定义NSView:它是否需要创建IBPlugin?

如何解决《绑定自定义NSView:它是否需要创建IBPlugin?》经验,为你挑选了2个好方法。

我创建了NSView的子类来将图像绘制为模式:

@interface CePatternView : NSView
{
    NSImage*    image;
    id      observableObjectForImage;
    NSString*   keyPathForImage;
}

@end

我实现了以下内容来公开绑定:

+ (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
}

不幸的是,图像绑定不会出现在Interface Builder中.

我是否真的必须创建一个IBPlugin来在Interface Builder中公开绑定?对于我不打算重用的自定义视图来说,这似乎有些过分.



1> Peter Hosey..:

标题回答:不,你可以在没有IB插件的情况下绑定自定义视图(在代码中执行).
回答问题正文中的问题:是的,您确实需要一个IB插件来暴露IB中的绑定.

您的代码不会在Interface Builder中运行,除非您将其放入Interface Builder中,并且该exposeBinding:消息是您的代码.因此,您需要将其放入Interface Builder中.这意味着要编写IB插件.

此外,IB插件与旧的IB调色板不同.插件需要IB 3,并且更容易创建.调色板需要IB 2并且创建起来很痛苦.



2> 小智..:

我只是使用不同的标准绑定(例如,toolTip)将我的控制器对象绑定到我的视图对象,然后使用文本编辑器编辑XIB文件并手动更改XML.

此后,绑定正常工作,甚至可以在Interface Builder中正确显示以启动!

推荐阅读
勤奋的瞌睡猪_715
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有