草庐IT

macos - 如何在 Swift 中使用 NSWindowOcclusionState.Visible

我正在尝试实现窗口切换(我在Objective-C中做过很多次),但现在是在Swift中。看起来我错误地使用了NSWindowOcclusionState.Visible,但我真的看不到我的问题。在创建初始窗口后,仅调用w.makeKeyAndOrderFront(self)行。有什么建议吗?varfileArchiveListWindow:NSWindow?=nil@IBActionfunctougleFileArchiveList(sender:NSMenuItem){ifletw=fileArchiveListWindow{ifw.occlusionState==NSWindow

swift - 在 macOS Mojave 中请求相机权限

如果用户未授予权限,则在macOSMojave中为相机初始化AVCaptureDeviceInput会失败。尝试初始化时,系统会自动显示权限请求对话框。似乎没有办法获得用户响应的通知。+(instancetype)deviceInputWithDevice:(AVCaptureDevice*)device错误:(NSError*_Nullable*)outError;https://developer.apple.com/documentation/avfoundation/avcapturedeviceinput/1450880-deviceinputwithdevice我正在寻找一

swift - MacOS 使用 swift 4 更改菜单栏图标

使用MacOSMojave中的新暗模式,我想更改我的应用程序的菜单栏图标。默认情况下,它是一只白色的黑色熊,而不是仅仅反转颜色,我想使用一只正在打瞌睡的熊的图标。我的所有代码都在applicationDidFinishLaunching中的AppDelegate中设置菜单栏图标。所以我的问题是:有没有办法检查暗模式是否已激活,然后使用swift4更改图标?我试过:varinDarkMode:Bool{letmode=UserDefaults.standard.string(forKey:"AppleInterfaceStyle")returnmode=="Dark"}然后是一个if语句

macos - 全屏在 NSStatusItem 下方显示 NSWindow

我正在构建一个状态栏应用程序,它在单击时会在其状态项下方打开一个NSWindow,类似于Dropbox应用程序:但是,当我在全屏应用程序(例如邮件)中测试它时,屏幕会切换回我的主桌面屏幕并在那里显示窗口,而不是像dropbox那样将窗口覆盖在全屏应用程序上:是否可以在另一个应用程序的全屏模式下显示NSStatusItem的NSWindow下拉菜单?我见过其他项目,比如VadimShpakovski'sPopup,但我真的希望内容位于实际的NSWindow中。顺便说一句,我也尝试过使用NSPopover而不是NSWindow,但是全屏模式也有问题,asImentionedinanothe

swift - macOS 上的 OpenGL VSync/NSTimer 问题

我正在尝试在macOS上设置一个简单的OpenGL游戏,使用NSTimer设置运行循环,如here所述.这个想法是创建一个具有非常小(~1ms)时间间隔的重复计时器,并依靠vsync来调节帧速率。我将我的NSOpenGLContext交换间隔设置为值1,这应该启用垂直同步。我的印象是这会导致NSOpenGLContext.flushbuffer阻塞,但事实并非如此。我的渲染代码每秒触发60次以上。我链接的文档已被标记为已停用,但我读过的所有官方文档都表明可以以某种方式将NSTimer循环限制为显示的刷新率。不过,我还没有成功,我想知道这种方法是否不再可行。我错过了什么吗?在现代项目中,

swift - 无法通过 CoreBluetooth 发现蓝牙鼠标和键盘(macos Swift)

我在使用CoreBluetooth框架的设备上遇到问题。基本上我需要在OSX中复制标准蓝牙发现应用程序的功能,所以我执行了以下操作:letbluetoothManager=CBCentralManager()//LifecycleoverridefuncviewDidLoad(){super.viewDidLoad()bluetoothManager.delegate=self}//delegatemethodfunccentralManagerDidUpdateState(_central:CBCentralManager){switchcentral.state{case.powe

macos - 适用于 Mac OS X 10.11 的 CNContact

Apple从OSX10.11和iOS9.0开始提供了这个框架联系人:https://developer.apple.com/library/prerelease/mac/documentation/Contacts/Reference/Contacts_Framework/index.html#//apple_ref/doc/uid/TP40015328我想从Mac访问联系人,但我无能为力,因为该应用程序无法访问联系人:switchCNContactStore.authorizationStatusForEntityType(.Contacts){case.Authorized:pri

macos - NSTextField 可调整大小以适合内容

我的NSTextField定义了左、右和顶部约束(未设置底部约束)。如果内容放不下,我需要NSTextField增长,如果还有未使用的空间,我需要减小它的大小。现在我有了:如果NSTextField有多行文本或内容太多,它会自动以奇怪的行为扩展,而且NSTextField不会在调整窗口大小时减小自己的大小。我还没有找到任何用Swift编写的简单解决方案来解决这个问题(我有很多这样的带有约束的标签),在iOS上,一切都使用通常的文本标签和约束。我已经为这个问题创建了一个简单的项目,您可以看到问题所在:[DownloadText.zip]我找到但未使用的解决方案:您可以尝试计算可能的Tex

macos - CNContactPicker - 所有联系人都是灰色的

我似乎无法让CNContactPicker工作。我已经观看并重新观看了WWDCsession223。对于iOS版本的选择器,您设置了一个谓词来启用联系人以供选择,但OSX版本没有等效项。据我了解,如果您的代表支持contactPicker(picker:CNContactPicker,didSelectContactcontact:CNContact)并且您不提供任何显示的键,则选择器将配置为选择联系人。这是示例代码。当我使用它时,联系人都是灰色的,并且永远不会调用委托(delegate)方法。提前致谢funcselectContact(){letcontactStore=CNCont

swift - macOS 菜单栏应用程序中禁用的菜单项

我正在尝试在macOS上构建一个菜单栏应用。我似乎无法弄清楚为什么某些菜单项被禁用...屏幕截图:如您所见,退出菜单项已启用,并在单击时退出应用程序。但是,首选项项被禁用。我的代码AppDelegate.swift:letmenuBarItem=NSStatusBar.system().statusItem(withLength:NSSquareStatusItemLength)funcapplicationDidFinishLaunching(_aNotification:Notification){menuBarItem.button?.image=NSImage(named:"M