定义一个weak的self

toolBar.settingButtonClickedCallback = { [weak self] button in guard let self = self else { return } let visible = self.settingPopover?.isVisible if let visible = visible, !visible { self.settingPopover?.show(in: button, positionStyle: .below, space: 5) } else { self.settingPopover?.dismiss() } } homeButton.statusChangeCallback = { [weak self] status in if status == .hover, let self = self, self.homeMenuViewController.view.isHidden { self.navigationPopover?.show(in: self.homeButton, positionStyle: .leftAlignedBelow) } } navigationController.itemDidSelectedCallback = { [weak self] itemTitle in guard let self = self else {return} if itemTitle == LocalizedString(key: messageManagerPreview) { self.goLiveViewModule() } else if itemTitle == LocalizedString(key: previewPlayback) { self.goPlayBackModule() } else if itemTitle == LocalizedString(key: deviceListDevice) { self.goDeviceManagementModule() } else if itemTitle == LocalizedString(key: downloadCenterTitle) { self.goDownloadCenterModule() } } settingController.clientSettingOnClicked = { [weak self] in if let self = self { self.settingPopover?.dismiss() let window = TPGuardWindow(contentController: homeSettingVC) window.show(in: self.view.window) } } settingController.checkVersionOnClicked = { [weak self] in if let self = self { self.settingPopover?.dismiss() let window = TPGuardWindow(contentController: checkVersionsVC) window.show(in: self.view.window) } } settingController.helpOnClicked = { [weak self] in if let self = self, let url = URL(string: "https://www.tp-link.com/app/omada-guard/issue/?app=omada-guard") { self.settingPopover?.dismiss() NSWorkspace.shared.open(url) } } settingController.openSourceOnClicked = { [weak self] in if let self = self, let licenseUrl = Bundle.main.url(forResource: "Licenses", withExtension: "bundle") { do { let contents = try FileManager.default.contentsOfDirectory(atPath: licenseUrl.relativePath).sorted { first, second in return first < second }; if let firstFile = contents.first { NSWorkspace.shared.activateFileViewerSelecting([licenseUrl.appendingPathComponent(firstFile, isDirectory: false)]); } } catch { } self.settingPopover?.dismiss() } }这些方法是独立的还是有联系的?我想对我的新button也添加一个点击事件,该怎么写
09-19
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值