可可 – 来自.xib的可重用NSView

可可 – 来自.xib的可重用NSView,第1张

概述在我的应用程序的几个部分,我需要一个用户可以输入密码的控件.密码字段是安全的,但是我希望用户能够将字段切换为纯文本并检查打字错误等. 密码字段本身没有问题.我将NSSecureTextField子类化以获取我想要的行为.我使它可绑定,所以我可以切换显示从另一个控件(比如,一个复选框). 现在,我想在我的应用程序中的多个地方重复使用.我可以简单地使用我的自定义安全文本字段旁边的复选框无处不在我需要这 在我的应用程序的几个部分,我需要一个用户可以输入密码的控件.密码字段是安全的,但是我希望用户能够将字段切换为纯文本并检查打字错误等.

密码字段本身没有问题.我将NSSecureTextFIEld子类化以获取我想要的行为.我使它可绑定,所以我可以切换显示从另一个控件(比如,一个复选框).

现在,我想在我的应用程序中的多个地方重复使用.我可以简单地使用我的自定义安全文本字段旁边的复选框无处不在我需要这个.但我宁愿将这些片段组合成一个可重复使用的组件.

所以我创建一个使用界面构建器:

现在,我如何在不同的窗口中使用它?我添加了一个“自定义视图”组件到我的窗口,并适当地设置它的类型:

但是在运行时,我只是得到一个空的空间.

1 – 大概是因为我的视图是在.xib中定义的 – 我需要在代码中做一些事情来从.xib加载我的PasswordVIEw实例;但究竟需要做什么呢?我无法解决这个问题.

特别:

>从.xib加载我的视图实例的过程/ API是什么?我正在努力寻找有关这方面的文件.
>一旦我加载了我的视图的一个实例,如何插入它代替我的自定义视图’占位符’?大概我需要一个自定义视图的插座,但是什么呢?我只是将加载的实例分配给插座?我应该把它添加到插座的子视图中?
>这个逻辑应该在哪里发生?里面的init,里面的AwakeFromNib?

2 – 我知道我可以使用一个NSVIEwController为我的自定义视图(example),并加载它的方式.但是我真的需要一个视图控制器吗?似乎我应该能够创建独立的视图并轻松实例化…但也许这不是可可的方式吗?在我看来,应该有一个简单的方法,从多个.xibs组成一个视图,而不需要每个子视图的控制器(可能只是一个文本字段或一个按钮),但我只是没有找到它. ..

先谢谢你.

解决方法 如果我从你的问题得到 – 你有一个XIB的窗口包含一个passwordTextFIEld和一个复选框.

而你希望这个xib窗口加载每次你需要显示密码字段.

我建议您不要创建一个窗口,您可以使用passwordTextFIEld和一个复选框创建一个NSVIEw.

并且在所有窗口中都会绘制一个空视图,您可以将此xib视图加载到该视图中,因此可以多次使用单个对象.

编辑:

这里是一些示例代码,我如何使用在主窗口上加载labelVIEw.

#import "AppDelegate.h"@implementation AppDelegate@synthesize window = _window;@synthesize myLabelVIEwController;- (voID)applicationDIDFinishLaunching:(NSNotification *)aNotification{    myLabelVIEwController=[[LabelVIEw alloc] initWithNibname:@"LabelVIEw" bundle:nil];    [_window setContentVIEw:[myLabelVIEwController vIEw]];}@end

LabelVIEw.h

#import <Cocoa/Cocoa.h>@interface LabelVIEw : NSVIEwController@end

LabelVIEw.m

#import "LabelVIEw.h"@implementation LabelVIEw- (ID)initWithNibname:(Nsstring *)nibnameOrNil bundle:(NSBundle *)nibBundleOrNil{    self = [super initWithNibname:nibnameOrNil bundle:nibBundleOrNil];    if (self) {        // Initialization code here.    }    return self;}@end
总结

以上是内存溢出为你收集整理的可可 – 来自.xib的可重用NSView全部内容,希望文章能够帮你解决可可 – 来自.xib的可重用NSView所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1019425.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存