我想在用户从默认模式切换到黑暗模式时更改状态栏应用程序图标,反之亦然(使用Swift 3).这是我到目前为止所拥有的:
func applicationDidFinishLaunching(_ aNotification: Notification) {
DistributedNotificationCenter.default().addObserver(self, selector: #selector(darkModeChanged(sender:)), name: "AppleInterfaceThemeChangedNotification", object: nil)
}
...
func darkModeChanged(sender: NSNotification) {
print("mode changed")
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,它没有用.我究竟做错了什么?
observers selector nsnotificationcenter swift nsdistributednotification
我想永远重复一个动画,没有它自动反转,并且在动画播放后的重复之间有延迟/暂停。
\n我知道有一个.delay()修改器,但它延迟了动画的开始:
let ani = Animation.easeInOut.delay(1.0).repeatForever(autoreverses: false)\nRun Code Online (Sandbox Code Playgroud)\n除了.repeatForever修改器之外,动画播放后它会立即跳回到开头。但我希望最后一个关键帧在屏幕上保持短时间内可见。
我\xe2\x80\x99ve也尝试了相反的方法,在修饰符.delay()后面添加一个.repeatForever,但没有成功(delay没有效果)。
let ani = Animation.easeInOut.repeatForever(autoreverses: false).delay(1.0)\nRun Code Online (Sandbox Code Playgroud)\n如何在动画播放后添加延迟?
\n我遵循了一堆教程,但没有用:我只是想向macOS应用添加自定义字体。
我基本上尝试的是:
.ttf字体文件到我的项目:目标组成情况,我也确保文件是使用拷贝制作Copy Files中Bundle Phases。编译后,我可以看到所有文件都在捆绑包中。这样看来效果很好。Info.plist:我为要添加的每个字体文件(值)添加Fonts provided by application并创建了一个项目myFont.tff。
我确保使用正确的字体名称。我在系统上安装了字体,并使用Interface Builder配置了Label,以便它使用所需的字体。我印了它的价值print(myLabel.font.fontName)。
令人困惑:如果将我要添加到应用程序的完全相同的字体文件安装在系统Fontbook中并激活,则一切正常。当我停用它时,它不起作用。对我来说,这表明我使用的是正确的字体名称。
我找到ATSApplicationFontsPath并尝试将其添加到中Info.plist,但没有使用路径(由文档推荐)或类似.(似乎对某些人有用的)值确定。
感谢任何帮助!
SwiftUI我正在使用新的生命周期构建 macOS 应用程序App。
我很想更改 \xe2\x80\x9cAbout Window\xe2\x80\x9d 的内容(当您点击 apps\xe2\x80\x99 中的 \xe2\x80\x9cAbout DemoApp\xe2\x80\x9d 时出现)菜单)但不知道如何:
\n\n如何用自定义视图替换“关于”视图?
\n我想在Mac OS X应用程序中控制主屏幕的亮度(如F1/F2按钮).在iOS中,有这样的东西:
UIScreen.mainScreen().brightness = CGFloat(0.5)
Run Code Online (Sandbox Code Playgroud)
在OSX中我们有NSScreen,这很好找出主屏幕是什么,但它错过了.brightness方法.
那么如何在OSX上使用Swift调整显示器亮度?
我想将OSX中的文件移动到另一个目录:
func moveFile(currentPath currentPath: String, targetPath: String) {
let fileManager = NSFileManager.defaultManager()
do { try fileManager.moveItemAtPath(currentPath, toPath: targetPath) }
catch let error as NSError { print(error.description) }
}
Run Code Online (Sandbox Code Playgroud)
一切正常,除了目标目录不存在的情况。我发现这.isWritableFileAtPath可能会有所帮助。
但是,在声明的函数中,我使用完整的文件路径(包括文件名)。
我该如何从路径中分割文件名或从其他路径中分割文件名:如果需要,如何在移动文件之前强制Swift创建目录?
我想NSMenu在用户右键单击 aNSTableCellView中的a时弹出a NSTableView。
let cell = myTableView.make(withIdentifier: "myCustomTableCellView", owner: self) as! MyTableCellView // subclass of NSTableCellView
let menu = NSMenu()
menu.autoenablesItems = false
menu.addItem(NSMenuItem(title: "Test", action: nil, keyEquivalent: ""))
cell.menu = menu
Run Code Online (Sandbox Code Playgroud)
但是如果用户单击单元格,则不会弹出菜单。
我找不到任何sendActionOn方法或类似的东西。
如果有人可以提供帮助,那就太好了!
我想检测用户是否使用Swift.
基于此答案,我创建了以下代码:
import Cocoa
import Quartz
if let dict = Quartz.CGSessionCopyCurrentDictionary() as? [String : Any] {
let locked = dict["CGSSessionScreenIsLocked"]
print(locked as? String ?? "")
}
Run Code Online (Sandbox Code Playgroud)
...如果我明确运行代码,这似乎工作正常。
但是如何观察值以便在值更改时得到通知?
我想以编程方式选择/NavigationLink中的特定内容。NavigationViewList
以下代码在纵向或横向模式下的 iPhone 上都可以正常工作 == 在列表除了目标视图之外不永久可见的情况下。
\n\n代码:
\nstruct ContentView: View {\n\nprivate let listItems = [ListItem(), ListItem(), ListItem()]\n@State var selection: Int? = 0\n\nvar body: some View {\n NavigationView {\n \n List(listItems.indices) {\n index in\n \n let item = listItems[index]\n let isSelected = (selection ?? -1) == index\n \n NavigationLink(destination: Text("Destination \\(index)"),\n tag: index,\n selection: $selection) {\n \n Text("\\(item.name) \\(index) \\(isSelected ? "selected" : "")")\n \n }\n \n }\n \n }\n .listStyle(SidebarListStyle())\n .onAppear(perform: {\n …Run Code Online (Sandbox Code Playgroud) 我有两个数组:
let arr1 = ["one.json", "two.json", "three.json"]
let arr2 = ["one.json", "three.json"]
Run Code Online (Sandbox Code Playgroud)
现在我想删除arr2in的所有值arr1,所以我在上面的例子中的预期结果将是let arrFiltered = ["two.json"].我知道如何使用for循环来处理这个问题,但是,我认为可能有一个更简单,更面向性能的解决方案?
swift ×8
macos ×4
cocoa ×3
swiftui ×3
nsmenu ×2
about-box ×1
animation ×1
arrays ×1
brightness ×1
filter ×1
fonts ×1
info.plist ×1
menuitem ×1
nsfont ×1
nsmenuitem ×1
nstableview ×1
observers ×1
quartz ×1
selector ×1
swift2 ×1