objective-c - 什么情况下[[NSScreen mainScreen]visibleFrame]会返回null?

标签 objective-c cocoa

我想获取主屏幕的尺寸,所以我使用这个片段:

NSLog(@"mainScreen frame = %@", [[NSScreen mainScreen] visibleFrame]);

正在打印

mainScreen frame = (null)

早些时候它打印了我的主显示器的预期尺寸。

造成这种情况的可能原因有哪些?

最佳答案

这里的问题是您遇到的是 Objective-C Cocoa 编程中相对较少的非对象之一。

“visibleFrame”的结果是一个 NSRect 结构,而不是一个对象。要让它在 NSLog 行中有意义地显示,您必须执行以下操作:

NSString* frameAsString = NSStringFromRect([[NSScreen mainScreen] visibleFrame]);
NSLog(@"mainScreen frame = %@", frameAsString);

有一些辅助函数可以将许多这些结构对象转换为字符串并返回,例如NSStringFromPoint、NSStringFromRange 等

关于objective-c - 什么情况下[[NSScreen mainScreen]visibleFrame]会返回null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/864157/

相关文章:

cocoa - 如何重构调用 super 的代码中的口是心非

cocoa - 处理 OS X Dock 拖放

ios - 如何在 Objective C pod 中快速使用函数指针

objective-c - Swift 1.2 为什么我不能继承任何 NSCell 的子类?

objective-c - "error:NULL"还是 "error:nil"?

macos - 在 NSTextField 上设置可编辑没有任何效果

cocoa - 如何将 nslog 输出重定向到文件而不是控制台

macos - 如何在Mac上的沙箱中启动另一个进程?

iphone - 如何检查我们在 iOS 中的特定应用程序的 GPS 权限是打开还是关闭?

iphone - 当前ModalViewController : how to interact with parent