关键词:
【中文标题】如何在 Swift 中实现 NSWindowRestoration?【英文标题】:How to implement NSWindowRestoration in Swift? 【发布时间】:2014-06-10 00:50:12 【问题描述】:我尝试在非基于文档的应用程序中在 Swift 中实现 NSWindowRestoration 协议。然而,restoreWindowWithIdentifier
方法永远不会在应用程序启动时被调用。谁能指出我的错误?
这是代码的子集(编译和运行良好):
class AppDelegate: NSObject, NSApplicationDelegate, NSWindowRestoration
var windowController : MyWindowController?
func applicationDidFinishLaunching(aNotification: NSNotification?)
windowController = MyWindowController(windowNibName:"ImageSequenceView")
class func restoreWindowWithIdentifier(identifier: String!, state: NSCoder!, completionHandler: ((NSWindow!,NSError!) -> Void)!)
NSLog("restoreWindowWithIdentifier: \(identifier), state: \(state)")
class MyWindowController: NSWindowController
override func windowDidLoad()
super.windowDidLoad();
window.restorationClass = AppDelegate.self
提前致谢!
【问题讨论】:
出于好奇,当您交换super.windowDidLoad()
的顺序并设置window.restorationClass
时会发生什么。
抱歉,长途旅行。刚试过,但没有任何作用......
当我使用 self.dynamicType
并确保我的系统首选项设置为恢复 Windows restoreWindowWithIdentifier
时,我的班级被调用。
【参考方案1】:
你需要设置一个恢复类,还一个标识符:
class MyWindowController: NSWindowController
override func windowDidLoad()
super.windowDidLoad()
self.window?.restorationClass = type(of: self)
self.window?.identifier = "MyWindow"
extension MyWindowController: NSWindowRestoration
static func restoreWindow(withIdentifier identifier: String, state: NSCoder, completionHandler: @escaping (NSWindow?, Error?) -> Void)
if identifier == "MyWindow"
// Restore the window here
当然你也可以让另一个类恢复窗口,就像你试过的那样。在这种情况下,您需要将AppDelegate.self
分配为restorationClass
。
另外,请注意window restoration setting now defaults to "off",无论出于何种愚蠢的原因。
【讨论】:
系统偏好设置窗口恢复设置默认为关闭也引起了我的注意。很容易迷失在代码中,想知道为什么没有按您预期的方式工作,直到您意识到这个复选框控制了一切。这是如何在 swift 4 中实现的?
】这是如何在swift4中实现的?【英文标题】:Howisthisimplementedinswift4?【发布时间】:2018-08-0413:25:33【问题描述】:我有这个link用于表格视图中的下拉搜索栏。我能够使用此代码在tableview中实现搜索栏searchController.searchResultsUpdater=s... 查看详情
mailcore2如何在swift中实现它
】mailcore2如何在swift中实现它【英文标题】:mailcore2howtoimplementitinswift【发布时间】:2018-02-2212:16:13【问题描述】:我厌倦了在这里https://github.com/MailCore/mailcore2/blob/master/build-mac/README.md遵循这些说明,但我不明白或不知道如何在... 查看详情
如何在 Swift 中实现全球化?
】如何在Swift中实现全球化?【英文标题】:HowtomakesomethingglobalinSwift?【发布时间】:2014-06-0818:07:13【问题描述】:我在viewDidLoad函数中创建了一个UILabel。然后,我有一个在viewDidLoad函数之外的函数。我需要能够访问UILabel。我知... 查看详情
如何在 inputAccessoryView [Swift] 中实现滚动视图
】如何在inputAccessoryView[Swift]中实现滚动视图【英文标题】:HowtoimplementascrollViewinsideinputAccessoryView[Swift]【发布时间】:2020-04-2714:48:47【问题描述】:在我的swift应用程序中,我正在使用inputActivityView,非常努力,我的想法是在该... 查看详情
Swift 3:如何在项目中实现 Cocoapods?
】Swift3:如何在项目中实现Cocoapods?【英文标题】:Swift3:HowtoimplementCocoapodsintoproject?【发布时间】:2017-02-1216:22:20【问题描述】:我是swift3和cocoapods的初学者,我想为我的项目实现这个https://github.com/luowenxing/MTImagePicker图像选择... 查看详情
如何在 Swift iOS 中实现 iMessage 渐变?
】如何在SwiftiOS中实现iMessage渐变?【英文标题】:HowcanIimplementtheiMessagegradientinSwiftiOS?【发布时间】:2020-12-2423:40:30【问题描述】:我正在努力实现的目标我正在尝试在SwiftiOS中实现渐变气泡效果,其中顶部的聊天气泡颜色较浅... 查看详情
如何在 Objective-C 和 Swift 中实现“didSelectButtonInCellAtIndexPath:”?
】如何在Objective-C和Swift中实现“didSelectButtonInCellAtIndexPath:”?【英文标题】:Howtoimplement"didSelectButtonInCellAtIndexPath:"inObjective-CandSwift?【发布时间】:2018-08-2707:13:41【问题描述】:我熟悉“UITableViewDelegate”。-(void)tableVie 查看详情
如何在 Swift 中实现一个管理 UserDefaults 的键值对的通用结构?
】如何在Swift中实现一个管理UserDefaults的键值对的通用结构?【英文标题】:HowcanIimplementagenericstructthatmanageskey-valuepairsforUserDefaultsinSwift?【发布时间】:2021-02-0921:22:15【问题描述】:如何在Swift中实现一个管理UserDefaults映射的结... 查看详情
IQKeyboardManagerSwift pod install : 如何在 swift 中实现完成按钮操作
】IQKeyboardManagerSwiftpodinstall:如何在swift中实现完成按钮操作【英文标题】:IQKeyboardManagerSwiftpodinstall:HowtoimplementDonebuttonactioninswift【发布时间】:2017-09-1204:20:50【问题描述】:我正在使用以下库(有助于管理多个文本字段)pod\'IQKe... 查看详情
如何使用 Swift 在 CustomCell 中实现 inputAccessoryView 到 UITextField?
】如何使用Swift在CustomCell中实现inputAccessoryView到UITextField?【英文标题】:HowtoimplementinputAccessoryViewtoUITextFieldinCustomCellusingSwift?【发布时间】:2017-11-0815:59:30【问题描述】:我有一个带有自定义单元格的tableView,它与配置的自己... 查看详情
如何在 quickblox (Swift, iOS, xcode) 中实现发送图片
】如何在quickblox(Swift,iOS,xcode)中实现发送图片【英文标题】:Howtoimplementsendingimagesinquickblox(Swift,iOS,xcode)【发布时间】:2016-02-2723:01:41【问题描述】:我已经有一个应用程序,并实施了Quickblox。到目前为止,我只有消息发送。如何... 查看详情
如何在 swift 中实现类似 Dropbox 的进度视图?
】如何在swift中实现类似Dropbox的进度视图?【英文标题】:HowdoIachievethisDropboxlikeprogressviewinswift?【发布时间】:2015-09-1105:46:54【问题描述】:DropboxiOS应用有一种非常酷的视图层次结构,当从它们的“文件”tableView中选择一行时... 查看详情
如何使用 Swift 3 for iOS 在 ViewController.swift 中实现 UICollectionView
】如何使用Swift3foriOS在ViewController.swift中实现UICollectionView【英文标题】:HowtoimplementUICollectionViewwithinViewController.swiftusingSwift3foriOS【发布时间】:2017-03-2517:07:29【问题描述】:我正在和BrianVoong一起学习他的教程:https://youtu.be/kecV6... 查看详情
如何使用原生崩溃报告在 Swift 4 中实现异常/错误处理?
】如何使用原生崩溃报告在Swift4中实现异常/错误处理?【英文标题】:HowtoimplementException/ErrorHandlinginSwift4withnativeCrashReporting?【发布时间】:2019-01-1107:51:32【问题描述】:我想在我的iOSSwift4代码中实现原生崩溃报告(不推荐使用... 查看详情
如何在 Swift 中实现收藏夹或点赞按钮
】如何在Swift中实现收藏夹或点赞按钮【英文标题】:HowdoIimplementaFavoritesorLikebuttoninSwift【发布时间】:2016-08-2306:20:04【问题描述】:我想添加一个赞\\收藏Button。一旦您单击最喜欢的button,图像将变为全红心并放置徽章(WhenStar\... 查看详情
swift之深入解析如何在swift中实现状态机(代码片段)
一、状态机的定义①什么是状态机?我们直接使用维基百科上的定义:Afinite-statemachine(FSM)orfinite-stateautomaton(FSA,plural:automata),finiteautomaton,orsimplyastatemachine,isamathematicalmodelofcomputation.简而言之:通常称作的状态机是有限状态机的简... 查看详情
Xcode6/Swift - 如何在多个视图控制器中实现 iAdBannerView?
】Xcode6/Swift-如何在多个视图控制器中实现iAdBannerView?【英文标题】:Xcode6/Swift-HowtoimplementaniAdBannerViewinmultipleviewcontrollers?【发布时间】:2014-10-1611:59:12【问题描述】:在我开始之前,我知道这个问题已经被问过很多次了,但是... 查看详情
如何在 iOS(Swift 或 Objective C)中实现这样的套接字调用?
】如何在iOS(Swift或ObjectiveC)中实现这样的套接字调用?【英文标题】:HowcanIachieveasocketcalllikethisiniOS(SwiftorObjectiveC)?【发布时间】:2018-10-1515:29:59【问题描述】:这是Java中用于进行套接字调用的代码,但我想知道如何在iOS(Swif... 查看详情