- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
<分区>
我正在制作一个带有 float 窗口的 Cocoa 应用程序。 float 窗口应该位于主屏幕的中心,大小为主屏幕的 1/4。以下 Swift 是我的应用程序的精髓:
import Cocoa
@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {
var panel: NSPanel!
func applicationDidFinishLaunching(_ aNotification: Notification) {
let screenRect:CGRect = NSScreen.main()!.frame
panel = NSPanel(
contentRect: NSRect(
x: screenRect.width/4,
y: screenRect.height/4,
width: screenRect.width/2,
height: screenRect.height/2
),
styleMask: NSWindowStyleMask.nonactivatingPanel,
backing: NSBackingStoreType.buffered,
defer: false
)
panel.alphaValue = 0.5
panel.backgroundColor = NSColor.red
panel.level = Int(CGWindowLevelForKey(CGWindowLevelKey.maximumWindow))
panel.orderFront(nil)
}
}
这会产生一个像这样的面板:
问题出现在主屏幕分辨率改变时。显示这一点的一种方法是转到“系统偏好设置”>“显示”并将分辨率设置为“缩放”和“更多空间”。这样做之后,面板看起来像这样:
可以看到,更改分辨率后面板的位置不正确。我希望面板保持其位置:居中且为屏幕大小的 1/4。为此,我检测屏幕分辨率(即 NSScreen
的 frame
属性)何时更改,以便我可以更改面板的大小和位置。
当 NSScreen
的 frame
属性发生变化时,是否会触发某些事件?或者有不同的方法来处理这个问题吗?
我的 Mac 设置是这样的:5K 显示屏排列在 Mac 内置显示屏的顶部。 如果我的鼠标光标位于 5K 显示屏上,并且我尝试像这样获取鼠标位置: CGEventRef ourEvent = CGEve
我正在开发一个项目,其中每个显示器都有设置。我希望我的应用程序支持删除显示器并稍后重新添加显示器,可能在其间使用另一个显示器,并在再次看到显示器时应用每个显示器的原始设置。 据我所知,没有办法通过 N
这是我的 NSWindow 的构造函数子类名为 FullScreenWindow : - (id)initWithScreen:(NSScreen *)s { NSRect contentRect =
我试图创建一个停靠在屏幕顶部、OS X 菜单栏下方的工具栏。 我不希望其他应用程序在最大化时能够与我的应用程序重叠。我可以使用 NSScreen 的visibleframe 方法获取可见框架尺寸,但是
我有一个应用程序,它将根据按下的按钮加载几个窗口。除其中之一外,所有这些都在主屏幕(打开主窗口的屏幕)上打开。其中一个(首选项窗口)在第一个屏幕(带有菜单栏的屏幕)上打开。我无法理解它是如何做到这一点
documentation [NSScreen mainscreen] 具有误导性。 The main screen is not necessarily the same screen that c
documentation [NSScreen mainscreen] 具有误导性。 The main screen is not necessarily the same screen that c
我正在编写一个应用程序来操纵窗口位置并添加多显示器支持。 为此,我有“本地”窗口位置(相对于 NSScreen 的框架),我需要将其转换为“全局”窗口位置(相对于指定所有监视器位置的位置,我相信它是
在 Cocoa/AppKit 中,给定一个来自 [NSScreen screens] 的屏幕,我如何才能知道该特定屏幕上是否正在运行全屏应用程序?我最感兴趣的是使用 Cocoa API 进行全屏显示的
我正在制作一个应用程序,它将在 Mac 上的实时屏幕上添加水印。我应该选择哪个 API?我尝试了 NSScreen 但没有找到任何可以向 NSScreen 添加 View 的方法。 像Mac Apps
这是我在调试应用程序时观察到的情况。我的应用程序本质上是一个单线程应用程序。 应用程序最初只有一个线程。 线程 1:队列:com.apple.main-thread。 在我的应用程序中,当点击以下代码
获取最有可能是投影仪或 AirPlay 显示器的 NSScreen 实例的最佳方式是什么? (甚至电视输出?)我正在编写一个演示软件,需要知道哪个屏幕最有可能代表“演示”屏幕。 我想到了一些选择: A
我需要在外部屏幕上显示一个窗口(例如连接到 Macbook 的显示器)。但我不知道如何区分内部 MacBook 屏幕和外部屏幕。调用 NSScreen.screens() 返回所有屏幕的列表,在我的例
我想获取主屏幕的尺寸,所以我使用这个片段: NSLog(@"mainScreen frame = %@", [[NSScreen mainScreen] visibleFrame]); 正在打印 ma
这个问题在这里已经有了答案: How to get resolution change event in swift? (4 个答案) 关闭 5 年前。 我正在制作一个带有 float 窗口的 Co
我在清理 CATextLayer 时遇到问题。对于 iOS,解决方案是: textLayer.contentsScale = UIScreen.mainScreen.scale 但我在 cocoa N
如果我的 MacBook 连接了外接显示器,我该如何找回 MacBook 屏幕? 其中一个屏幕可以是带有菜单栏和扩展坞的屏幕。它们也可以具有相同的分辨率、相同的名称等。 是否可以在不要求用户拔掉除 M
使用 [NSScreen screens] 我能够获得连接到计算机的所有屏幕及其尺寸,但是我试图找出它们之间的相对位置(如显示首选项中的排列)。有没有办法做到这一点?我在网上查看并浏览了 Apple
macOS 10.15+ 提供 NSScreen.localizedName ,它为屏幕提供面向用户的名称,例如“内置 Retina 显示屏”或“Встроенный дисплей Retina”(
我是一名优秀的程序员,十分优秀!