- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想将我的 UIView 中的 CGPoint 转换为 UIWindow 坐标,并且已经意识到 UIApplication keyWindow 始终为 nil;这是为什么?
我尝试了 UIView 中的 convertPoint:toView:
方法。
请查看我在 Xcode(View 应用程序)模板中的 View Controller 中尝试的示例代码:
- (void)viewDidLoad {
[super viewDidLoad];
UIView *test = [[UIView alloc] initWithFrame:CGRectMake(40,40,250,250)];
[test setBackgroundColor:[UIColor redColor]];
[self.view addSubview:test];
CGPoint p = CGPointMake(100, 100);
CGPoint np;
np = [test convertPoint:p toView:[[UIApplication sharedApplication] keyWindow]];
NSLog(@"p:%@ np:%@", NSStringFromCGPoint(p), NSStringFromCGPoint(np));
AppDelegate *appDel = (AppDelegate *)[UIApplication sharedApplication].delegate;
np = [test convertPoint:p toView:[appDel window]];
NSLog(@"p:%@ np:%@", NSStringFromCGPoint(p), NSStringFromCGPoint(np));
np = [test convertPoint:p toView:nil];
NSLog(@"p:%@ np:%@", NSStringFromCGPoint(p), NSStringFromCGPoint(np));
[test release];
if(![[UIApplication sharedApplication] keyWindow])
NSLog(@"window was nil");
}
我得到:
p:{100, 100} np:{100, 100}
p:{100, 100} np:{140, 160}
p:{100, 100} np:{100, 100}
window was nil
我可以转换它,但只有当我通过应用程序委托(delegate)访问窗口时才可以。而不是 UIApplication。根据文档, keyWindow 应该在这里工作,但为零。这是为什么?
最佳答案
此代码在应用委托(delegate)内的 [window makeKeyAndVisible];
之前执行。所以,难怪 keyWindow
是 nil
了。
关于iphone - UIApplication sharedApplication - keyWindow 为零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3359501/
我在我的 info.plist 中设置了“应用程序不在后台运行”,所以当用户点击主页按钮时,应用程序退出。 当我的 [UIApplication -appWillTerminate:] 被调用时,我将
谁能帮我理解以下两行之间的区别: [UIApplication.sharedApplication.delegate.window addSubview:myView]; [UIApplication
在 iOS 14.5 或 14.6 之前,我们可以通过将 仅需要 App-Extension-Safe API 设置为 NO 并使用: if #available(iOS 10.0, *) {
我需要您的帮助来阐明我对应用程序各种状态的理解。我将陈述我的解释-但请随时纠正我。 1)应用启动并在前台运行:state = UIApplicationStateActive 2)用户按下主页按钮:s
我有这个代码: NSString *telURL = [NSString stringWithFormat:@"tel:1-%@",((UIButton*) sender).titleLabel.te
iPhone 引用库 - UIApplication 说我可以子类化 UIApplication,但如果我尝试这样做,我会得到一个异常: *** Terminating app due to unca
应用程序委托(delegate)之外有类似的东西吗?我只是希望在收到通知时能够在 View Controller 中执行某些操作。我是否只需导入它们中的每一个并根据我当前的 View Controll
我的应用程序处于横向模式,并且在应用程序中,用户每次单击浏览按钮时都必须注册照片,它会定向到相机胶卷,但是当我单击浏览操作时,会发生异常。以下是我得到的异常 'UIApplicationInvalid
我需要获取当前最前面的应用程序的 UIApplication 实例。我使用 [UIApplication sharedApplication] 但只获取 SpringBoard 的实例,有人知道我该怎
我的应用程序执行后台提取以更新一些数据。在我的初始 View Controller 中 viewDidLoad方法 我想检测我的应用程序是否为后台获取运行? 我知道使用这个检查应用程序的状态非常容易:
请帮我看看 UIApplication 将在后台状态下运行多长时间。比如当我们按下主页按钮等时 最佳答案 限制如下: iOS6 10 分钟 iOS7 3 分钟 就在您的应用委托(delegate)实现
我在我的应用程序中安排了一个通知,并创建了一个带有暂停按钮的可操作通知。在贪睡按钮处理上,我创建了另一个通知并安排了它。但是当我启动应用程序并尝试获取该预定通知时,它说 0 预定通知,并且当我在杀死它
我正在使用 Swift 语言构建适用于 iOS 系统的应用程序。所以我已经将核心数据添加到我的项目中。 我还创建了“CoreDataController” 这是它的代码: import Foundat
在我的 iOS 4 应用程序中,我需要在用户指定的时间从后台打开一个 URL。但是,出于某种原因,我无法从后台启动 URL。这是我打开 URL 的代码: if (![[UIApplication sh
我刚刚从 XCode 6.4 升级到 Xcode 7 GM 并开始更改代码以符合 Swift 2。我无法克服以下错误。 该项目是一个键盘扩展,片段来自包含的应用程序。 let s = "htt
嗨,我是 Iphone 开发领域的新手。我有一个问题: 我在 Appdeligate 类中使用 UIApplicationDeligate,在这个类中我使用两种方法 applicationDidEnt
伙计们:)我有一个 iOS 警报应用程序,它使用 UILocalNotification-s 在应用程序进入后台时安排用户定义的警报。由于这(在我的实现中)可能是一个相对较长的过程,因此我需要确保在应
我在应用程序商店中有一个使用 Touch ID 的 iPhone 应用程序。如果启用了 Touch ID,则用户将通过它进行身份验证,否则用户需要输入 PIN 码才能登录应用程序。 iOS 10.1发
我已经考虑了好几个小时了,但无济于事。我正在尝试向我的 iPad 应用程序添加一种方法,只要 120 秒没有任何事件,它就会将其发送回起始屏幕。 我对 Xamarin 和 IOS 编程都很陌生,如果我
我目前正在为 iPad 应用程序开发“设备内”(而非模拟器)监控系统。系统应该能够执行以下操作: -用户输入模拟:模拟用户输入:点击、拖动、键盘。 -信息记忆:输入后得到文本值和结果。 此信息稍后将报
我是一名优秀的程序员,十分优秀!