Objective c 如何使用单独的viewController正确设置NSPover
我创建了一个非常简单的测试程序。它有一个按钮。单击按钮将显示带有标签的Objective c 如何使用单独的viewController正确设置NSPover,objective-c,cocoa,interface-builder,nspopover,Objective C,Cocoa,Interface Builder,Nspopover,我创建了一个非常简单的测试程序。它有一个按钮。单击按钮将显示带有标签的nspover。该标签位于一个单独的xib文件中,它有自己的NSViewController 目标是,当我在主屏幕上单击按钮时,弹出窗口将显示viewcontroller的xib文件。xib文件的标签应该将其文本设置为“it works” 嗯。。它可以工作,但只能在第二次加载popover后工作。第一次单击按钮时,标签仍具有其旧的默认值。但从第二次点击开始,“它就起作用了”有人知道是什么导致了这个问题吗?它只有大约5行代码在这
nspover
。该标签位于一个单独的xib文件中,它有自己的NSViewController
目标是,当我在主屏幕上单击按钮时,弹出窗口将显示viewcontroller
的xib文件。xib文件的标签应该将其文本设置为“it works”
嗯。。它可以工作,但只能在第二次加载popover后工作。第一次单击按钮时,标签仍具有其旧的默认值。但从第二次点击开始,“它就起作用了”有人知道是什么导致了这个问题吗?它只有大约5行代码在这个存储库中可以看到这些代码-->调用
[mainScreenPopoverViewController视图]代码>在-(void)windowDidLoad
方法中。这将把您的视图加载到内存中
调用前<代码>[Main Screen PopOverview Controller view]代码>(文本字段地址为0x0)
您不应该对所有IBOutlet使用strong属性
@property (nonatomic, strong) IBOutlet NSTextField *textField;
看看
从实用角度来看,iOS和OS X中的插座应
定义为声明的属性。出口一般应该是薄弱的,
除了从文件的所有者到nib文件中的顶级对象
(或者,在iOS中,一个情节提要场景)应该是强的。出口
因此,您创建的应用程序通常应较弱,因为:
- 创建到视图控制器视图的子视图或
例如,窗口控制器的窗口是任意引用
在不意味着所有权的对象之间
- 强出口通常由框架类指定(例如,
UIViewController的视图出口或NSWindowController的窗口
出口)
调用[MainScreenPopOverview控制器视图]代码>在-(void)windowDidLoad
方法中。这将把您的视图加载到内存中
调用前<代码>[Main Screen PopOverview Controller view]代码>(文本字段地址为0x0)
您不应该对所有IBOutlet使用strong属性
@property (nonatomic, strong) IBOutlet NSTextField *textField;
看看
从实用角度来看,iOS和OS X中的插座应
定义为声明的属性。出口一般应该是薄弱的,
除了从文件的所有者到nib文件中的顶级对象
(或者,在iOS中,一个情节提要场景)应该是强的。出口
因此,您创建的应用程序通常应较弱,因为:
- 创建到视图控制器视图的子视图或
例如,窗口控制器的窗口是任意引用
在不意味着所有权的对象之间
- 强出口通常由框架类指定(例如,
UIViewController的视图出口或NSWindowController的窗口
出口)
嗨,好的,我知道强/弱IBO。我的错误。我刚刚做了这个测试应用程序,所以显示弹出代码。有一件事,解决方案是可行的,但对于为什么会这样做,是否存在某种联系?我相信nib加载代码已经将对象实例化到内存中。使用断点取消IBAction并检查textfield的地址。设置断点时,我了解了现在发生的事情。谢谢。嗨,好的,我知道强弱的IBO。我的错误。我刚刚做了这个测试应用程序,所以显示弹出代码。有一件事,解决方案是可行的,但对于为什么会这样做,是否存在某种联系?我相信nib加载代码已经将对象实例化到内存中。使用断点取消IBAction并检查textfield的地址。设置断点时,我了解了现在发生的事情。谢谢