Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 为什么窗口更改必须在AppDelegate中?_Ios_Objective C - Fatal编程技术网

Ios 为什么窗口更改必须在AppDelegate中?

Ios 为什么窗口更改必须在AppDelegate中?,ios,objective-c,Ios,Objective C,我需要在Xcode 5中更改窗口——而不是视图——背景 这在AppDelegate中运行良好,但我想知道为什么它必须存在: // Insert code here to initialize your application // Background color [_window setOpaque:NO]; // YES by default NSColor *semiTransparentBlue = [NSColor colorWithDeviceRed:0.0 green:0.0 bl

我需要在Xcode 5中更改窗口——而不是视图——背景

这在AppDelegate中运行良好,但我想知道为什么它必须存在:

// Insert code here to initialize your application
// Background color
[_window setOpaque:NO]; // YES by default
NSColor *semiTransparentBlue =
[NSColor colorWithDeviceRed:0.0 green:0.0 blue:1.0 alpha:0.5];
[_window setBackgroundColor:semiTransparentBlue];
如果我把它移到另一个类,把它放到

- (id)initWithFrame:(NSRect)frame, or
- (void)drawRect:(NSRect)dirtyRect,
与 #导入“AppDelegate.h” 在课堂上, 它可以正确编译,但无法更改窗口,即使断点显示正在访问该窗口

为什么它必须在AppDelegate中?是否所有窗口更改都必须在AppDelegate中?有没有参考资料可以解释


我无法通过大量的谷歌搜索找到任何指导。Apple文档显示了一行行代码,显示了要做什么,但没有显示放置它们的位置。

没有看到启动“其他类”的代码,这可能是UIView的子类,这是一种预感,但

_窗口可能设置不正确。您可以通过调用

[[UIApplication sharedApplication]委托].window


尝试设置颜色和不透明。

这是标记的iOS,但您引用的是Cocoa类。您如何获取引用窗口?不要求在给定模块中执行给定的代码行以实现其功能。需要的是它在适当的时间执行,并使用适当的数据。不知何故,您没有在正确的时间执行代码,或者您没有正确的数据。最好的猜测是当代码执行时,
\u window
是nil。maddy:不知何故,这被标记为ios——首先——尽管我选择了Xcode、objective-c和ios。我相信这关系到所有人。我使用的是iMac.picciano:正如我前面提到的,类中有#import“AppDelegate.h”。抱歉,我在OSX中,不是在ios中。对不起,我在OSX中,不是在ios中。坏消息:新的事情正在发生。我只是再次尝试将代码移动到另一个类,但现在它生成了错误“Initializer元素不是编译时常量”,这是以前从未发生过的。我不知道怎么处理这件事。