【发布时间】:2014-03-26 21:19:20
【问题描述】:
这可能是我想念的一些简单的事情,但这就是正在发生的事情:
我正在制作一个菜单项应用程序(应用程序是代理 = YES)
所以我有一个运行整个事情的 MainViewAppDelegate。当单击菜单项上的按钮时,它会检测到。
然后我有一个上传的NSWindowController:
#import <Cocoa/Cocoa.h>
@interface UploadView : NSWindowController
- (IBAction)upload:(id)sender;
@end
.m:
-(id)init {
if (! (self = [super initWithWindowNibName:@"UploadView"])) {
// Initialization code here.
return nil;
}
return self;
}
在 MainViewAppDelegate 中,按下该按钮时我会这样做:
if (!uploadView) {
uploadView = [[UploadView alloc] init];
}
[uploadView showWindow:self];
现在,只要我不点击 xcode,它就可以工作。一旦我这样做了(比如我让 chrome 成为活动选项卡),即使我回到 xcode,它也不再工作了。
有什么想法吗?
【问题讨论】:
-
我的直觉告诉我,这与您的 nib 文件中
UploadView的retain属性有关。 -
检查您的网点。当 NIB 首次加载时没有连接时,您会得到一个与窗口的幻像连接,该窗口在第一次关闭后立即消失(因为,您知道,这在 20 年前的某些人看来是合理的)。
-
NSWindow 的“关闭时释放”复选框曾经是(不是很有帮助的)默认值。
-
这真的让我很困惑。它似乎与关闭它没有任何关系。如果我关闭它而不离开 xcode,它会再次打开。只是如果我将其他一些窗口设为活动窗口,它就会停止工作。如果有帮助,这是我的整个代码库:github.com/Jonovono/cutter 它主要是 MainViewAppDelegate 和 UploadView
标签: objective-c macos cocoa xcode5