小编Raj*_*lak的帖子

使用键盘焦点在沙盒上获取NSScreen

我想知道的是哪个NSScreen具有键盘焦点.

首先,我添加了观察者,NSScreen并且每当NSWorkspace.didActiveApplicationNotification调用方法时,我需要确定哪个foo具有键盘焦点.

NSWorkspace.shared.notificationCenter.addObserver(self, selector: #selector(foo), name: NSWorkspace.didActivateApplicationNotification, object: nil)
Run Code Online (Sandbox Code Playgroud)

我从这个通知中得到的只是NSScreen对象,但它没有告诉我哪个屏幕是关注的.

NSScreen文档中,我找到了NSScreen的主要属性和描述

返回包含具有键盘焦点的窗口的屏幕对象.

这是我想要的,但它并没有像我想象的那样奏效.它返回错误的屏幕.在头文件中我找到了这个信息

//缓存的值,可能是陈旧的

我尝试过Accessibility,一切都很好,但是当启用Sandbox时它不起作用,所以我无法使用它.

有没有人知道如何通过键盘焦点获取NSScreen对象?

macos cocoa accessibility appstore-sandbox swift

10
推荐指数
0
解决办法
182
查看次数

如何以编程方式并排捕捉2个窗口(拆分视图)

NSWorkspace没有任何支持.我尝试过Accessibility,但仍然找不到任何有用的东西.

我在考虑AppleScript,但找不到任何有用的东西.

我需要这个效果在Split View中并排使用两个Mac应用程序

你有什么想法我能做到吗?

macos cocoa swift

7
推荐指数
1
解决办法
379
查看次数

使用 SwiftUI 在 tvOS 上自定义 TextField

我想知道我可以在 tvOS 上的 TextField 中自定义哪些内容。据我所知,我只能使用稍微更改标题和按钮标题SubmitLabel

但是,在查看“设置”界面时,我注意到苹果让它变得更好了一些。它包含描述、标题/描述的不同颜色、按钮的自定义标题,并且当文本字段为空时按钮将被禁用。

Apple 设置文本字段

所看到的这些事情有可能实现吗?

我尝试使用设计键盘输入体验中的 inputAccessoryView来添加另一个按钮,它可以在 UIKit 上运行,但它不会发送任何点击操作。

所以我的代码现在看起来像这样

import SwiftUI

struct ContentView: View {
    
    @State private var text = ""
    
    var body: some View {
        TextField("TitleKey", text: $text)
            .submitLabel(.continue)
    }
}
Run Code Online (Sandbox Code Playgroud)

我不知道如何进一步自定义此视图。

tvos swiftui

6
推荐指数
1
解决办法
202
查看次数

如何使用 git 仅获取提交历史记录,而不获取文件

有什么办法只获取历史记录吗?有时存储库很大,下载需要很长时间。

我不需要文件,我只需要使用 git log 和 git show 查找提交历史记录。

git clone file repository

5
推荐指数
1
解决办法
2697
查看次数

全屏启动其他应用

正如我在主题中提到的那样,我想知道是否可以通过我的应用程序以全屏方式运行应用程序。

我尝试使用辅助功能,但没有找到任何可以帮助的内容。我也尝试使用NSWorkspace,但是结果是一样的。我被卡住了。

有人可以帮我吗?

macos cocoa accessibility nsworkspace swift

5
推荐指数
0
解决办法
212
查看次数

将数据发送到另一个应用程序并从中获取响应

我正在尝试相互交流应用程序。

我正在使用第一个应用程序处理Apple Events

NSAppleEventManager.shared().setEventHandler(self, andSelector: #selector(handleGetURLEvent), forEventClass: AEEventClass(kInternetEventClass), andEventID: AEEventID(kAEGetURL))

func handleGetURLEvent(_ event: NSAppleEventDescriptor, withReplyEvent replyEvent: NSAppleEventDescriptor)
Run Code Online (Sandbox Code Playgroud)

在第二个应用程序中,我正在创建NSAppleEventDescriptor对象

let test = NSAppleEventDescriptor(string: "test")
let descriptor = NSAppleEventDescriptor(eventClass: AEEventClass(kInternetEventClass), eventID: AEEventID(kAEGetURL), targetDescriptor: nil, returnID: AEReturnID(kAutoGenerateReturnID), transactionID: AETransactionID(kAnyTransactionID))
descriptor.setParam(test, forKeyword: keyDirectObject)
Run Code Online (Sandbox Code Playgroud)

现在,NSWorkspace我启动了我的第一个应用程序

NSWorkspace.shared().launchApplication(at: myAppUrl, options: .default, configuration: [NSWorkspaceLaunchConfigurationAppleEvent:descriptor])
Run Code Online (Sandbox Code Playgroud)

一切都OK了,函数handleGetURLEvent被调用,但是... replyEvent.desciptorTypekAENullEvent我也没有线索,我怎么会得到你replyEvent在我的第二个应用程序。

我想这种解决方案有问题。

所以我的问题是,我怎样才能简单地将数据发送到其他应用程序并取回一些数据?

macos nsappleeventdescriptor swift

5
推荐指数
0
解决办法
417
查看次数

协议从类继承?

我阅读了有关协议的文档,但找不到有关从类继承的协议的任何信息,但代码可以编译。据我记得协议只能继承其他协议,我从未见过从类继承的协议。我什至不知道允许这种行为的语言。

class A {

}

protocol X: A {

}
// forced to inherit from class A, because of X protocol
class B: A, X {

}
Run Code Online (Sandbox Code Playgroud)

这是某种错误吗?

swift swift-protocols

4
推荐指数
1
解决办法
3481
查看次数