我有一个自定义NSWindowController子类,在初始化期间加载NIB文件,如下所示:
self = [super initWithNibNamed:@"myNib"];
if (self != nil) {
[self window];
}
Run Code Online (Sandbox Code Playgroud)
nib包含一些自定义视图和一些其他控件.这NSWindowController是文件的所有者,至少有一个视图甚至绑定它.
简单地说,关闭和释放该窗口我需要做什么?我花了一整天的时间试图解决这个问题,我仍然无能为力.
我的应用程序有一个奇怪的问题.我在运行时使用名为"LoginViewController"的NIB加载VC.NIB有一堆出口到NIB中的UIView对象,如下所示:

在运行时,我动态地将这些UIView对象作为标题放在我的表视图中.UIView在这种情况下,每个单独的(除了UITableView右边的那个)被设置为像这样的IBOutlet.每个人当然都有不同的名字:
@property (strong, nonatomic) IBOutlet UIView *connectionInProgressView;
Run Code Online (Sandbox Code Playgroud)
现在,在我的VC viewDidLoad方法中,我遍历所有这四个单独的视图,并通过写入日志来确保它们存在:
NSLog(@"connection in progress view: %@", self.connectionInProgressView);
Run Code Online (Sandbox Code Playgroud)
我的问题是:self.connectionInProgressView在iPad上为零而在iPhone上为零.无论平台如何,所有其他视图都不是零并且是实例化的.我在iOS 5.0,5.1和6.1的模拟器中运行它.我可以在所有iPad模拟器上重现这个问题.我的应用程序运行正常,并在iPhone上使用微调器加载视图,但在iPad上它无法加载该视图,因为它是零!为什么!?
我尝试过以下方法:
self.connectionInProgressView并不指向任何其他IBOutletself.connectionInProgressView所有NIB连接后删除并重新创建它.UILabel内部视图.没有运气,它不是活动指标.self.connectionInProgressView.没有(除了它的nil声明viewDidUnLoad).UINavigationController和LoginViewController.LoginViewControllerAppDelegate 的副本,虽然这看起来很浪费,并没有对结果产生影响.[编辑2]
问题:如何加载VC
我有一个UINavigationController是我的AppDelegate的属性.这UINavigationController是applicationDidFinishLaunchingWithOptions我通过我的VC作为根视图控制器的alloc-init'd .我此时实例化了VC.
// Create login/start up views
LoginViewController *loginViewController = [[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil];
self.loginViewNavigationController = [[UINavigationController alloc] initWithRootViewController:loginViewController]; …Run Code Online (Sandbox Code Playgroud) 我正在尝试在Mac OS上使用带有anaconda python 的pyqtgraph
Python 2.7.5 |Anaconda 1.6.1 (x86_64)| (default, Jun 28 2013, 22:20:13)
[GCC 4.0.1 (Apple Inc. build 5493)] on darwin
Run Code Online (Sandbox Code Playgroud)
我安装了pyqtgraph pip install pyqtgraph,看起来工作正常.但是,如果我从库中运行任何命令,我会收到此错误:
Qt internal error: qt_menu.nib could not be loaded. The .nib file should be
placed in QtGui.framework/Versions/Current/Resources/ or in the resources
directory of your application bundle.
Run Code Online (Sandbox Code Playgroud)
我发现这个SO线程,似乎与C++应用程序有关.在我的情况下,我没有application.app文件夹,所以我有点迷路.
我有一个UITableView与UITableViewCell来自不同的笔尖文件加载当用户轻敲或双抽头的小区,即,有不同高度的三个不同的笔尖文件,每一个用于正常,抽头和双击.
如何识别加载的笔尖heightForRowAtIndexPath:以动态设置行高?
我刚刚更新到xcode 5,当启动我的项目时,它询问我是否要更新nib文件.好吧,我只是说不,但现在我想,但我无法在任何地方找到选项.也许我很慢因为星期五,我不知道,请帮助我.
在基于文档的Cocoa应用程序中,我使用以下方法从外部包中实例化几个对象(插件):
- (NSMutableArray *)getPluginsOfType:(Class)type;
{
NSBundle *main = [NSBundle mainBundle];
NSArray *allPlugins = [main pathsForResourcesOfType:@"bundle" inDirectory:@"../PlugIns"];
NSMutableArray *availablePlugins = [NSMutableArray array];
for (NSString *path in allPlugins)
{
NSBundle *pluginBundle = [NSBundle bundleWithPath:path];
[pluginBundle load];
Class principalClass = [pluginBundle principalClass];
[availablePlugins addObject:principalClass];
}
return availablePlugins;
}
Run Code Online (Sandbox Code Playgroud)
在每个文件中,在init上加载一个nib文件,它将根视图与我的插件类中的属性绑定在一起.下面是一个最小的插件类定义:
@interface Plugin
@property (strong) IBOutlet NSView *thePluginView;
@end
@implementation Plugin
- (instancetype)init
{
self = [super init];
if (self)
{
[NSBundle loadNibNamed:@"NibName" owner:self];
}
return self;
}
@end
Run Code Online (Sandbox Code Playgroud)
虽然这很好用,但我想将上面的调用替换为NSBundle(因为它已被OS X 10.8+弃用),并将其替换为:
[[NSBundle mainBundle] loadNibNamed:@"NibName" …Run Code Online (Sandbox Code Playgroud) 我有一个自定义UIView实现CustomView.swift.然后我尝试CustomView在另一个名为CustomClass.swiftvia的类中实例化一个对象:
NSBundle.mainBundle().loadNibNamed(String(CustomView), owner: self, options: nil)
我得到以下异常:
***NSForwarding:警告:类'CustomClass'的对象0x7faceb60e300没有实现methodSignatureForSelector: - 提前麻烦无法识别的选择器 - [CustomClass awakeAfterUsingCoder:]
我应该如何为一个对NSObject进行子类化的类编写init方法
你会如何为这个类编写一个init方法,以便从nib文件加载?
我有一个UIVIewController"controller1".该控制器使用initWithNibName ...与"file1.xib"进行实例化.我想动态地将我的"controller1"的xib文件更改为"file2.xib"
恢复 :
"controller1"< - >"file1.xib",我想动态地拥有:"controler1"< - >"file2.xib"
我怎样才能做到这一点 ?
希望我很清楚.

我有一个带有StoryBoard(iOS 5+)的项目,带有两个UIViewController.
任务是以编程方式实例化第二个UIViewController(CoordinationController),但我想将它的XIB文件用于用户界面设计.
将XIB复制到StoryBoard的明显解决方法是无效或无法用于未记录的原因.即使是规则也是如果第二个故事板的视图控制器没有视图,它将查找相同的命名XIB ...不起作用.
如何实例化第二个UIViewController并使用其XIB文件?