如何以编程方式连接 Swift / MacOS 中的插座和操作

2023-11-21

我有一个简单的例子。 我通过按住 Ctrl 键并将其拖动到控制器类来连接左按钮 1 和标签 1。

如何以编程方式对右键 2 label2 执行相同操作(无需 Ctrl 拖动)

Xcode

这是我的代码:

class ViewController: NSViewController {

  @IBOutlet weak var label1: NSTextField!  //connected with ctrl-drag
  @IBOutlet weak var button1: NSButton!    //connected with ctrl-drag

  @IBOutlet weak var label2: NSTextField!  //not yet connected
  @IBOutlet weak var button2: NSButton!    //not yet connected

  @IBAction func button1Pressed(_ sender: Any)  //connected with ctrl-drag
  { label1.stringValue = "button-I"
    button1.title = "pressed"
  }

  @IBAction func button2Pressed(_ sender: Any)  //not yet connected
  { label2.stringValue = "button-II"
    button2.title = "pressed"
  }
  override func viewDidLoad() {
    super.viewDidLoad()
  }
}

如果您想使用情节提要并在那里布置所有元素,则无法真正避免 ctrl 拖动(或者如果打开右侧的连接检查器则只需拖动)。

但是,您可以在代码中以编程方式创建第二个按钮,而根本不使用故事板。然后也以编程方式添加您的约束。

如果您愿意,您还可以通过编程方式添加按钮的操作(使用 addTarget),但这至少需要设置 IBOutlet 才能引用该按钮。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何以编程方式连接 Swift / MacOS 中的插座和操作 的相关文章

  • Mac OS X 的自动热键替代品? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我们不允许提出寻求书籍 工具 软件库等推荐的问题 您可以编辑问题 以便用事实和引文来回答 这个问题似乎不是关于主要由程序员使用的特定编程问
  • 为什么 Swift 语言将 8 位二进制值赋给 Int8 类型的 var 时会出现溢出?

    当我在操场上写下这一行时 let firstBits Int8 0b11111111 出现错误 存储到 Int8 时整数文字溢出 由于 Int8 是有符号值 其范围是从 128 到 127 从左起第一位代表单数 减号或加号 其余 7 位代表
  • 检测 AVPlayerViewController 是否正在播放视频或正在缓冲并向播放器添加覆盖

    我必须检测视频是否处于播放模式或缓冲模式 我正在从 URL 加载视频 我已经尝试了下面的代码 我可以在视频开始播放后进行跟踪 但不能在视频处于缓冲状态时进行跟踪 另外 我想在我的播放器中添加覆盖视图 我尝试在 AVPlayer 中添加叠加层
  • Pythonlibs3 CMake 和 macOS

    更新2 将以下两行添加到我的 CMake 文件中时 成功找到了 python 3 及其库 这只在终端中工作的原因是因为 CLion 使用其捆绑版本的 CMake 3 6 3 而我的终端使用的更新版本 3 7 2 正确找到了 python F
  • 从 Xcode 中的 OSX 模拟器删除应用程序

    如何像在 iOS 模拟器上一样从 OSX 模拟器中删除应用程序 由于核心数据 xcdatamodeld 的更改 我想删除一个应用程序 但我找不到方法 提前致谢 对于 macOS Monterey 和 Big Sur 该位置链接到设备文件夹位
  • iOS 应用程序中的谷歌地图实时交通状况?

    如何使用 google 地图 sdk 或 api 在 ios 应用程序中添加当前交通状况 如下图所示 有 javascript api 但我没有找到任何适用于 iOS 应用程序的解决方案 只需在 iOS SDK 中添加一行代码即可启用或禁用
  • 尝试在 Xcode 中为 OS X 应用程序设置 Tab 键顺序

    我正在使用 Xcode 7 3 构建 OS X 桌面应用程序 并尝试为其中一个表单设置 Tab 键顺序 我发现有几篇文章解释了 Xcode 4 的类似问题 但没有任何进展 https www youtube com watch v SRrE
  • 如何阻止我的应用程序设置“隔离”位?

    从 OS X 10 7 3 开始 我的文本编辑器就在它接触的任何文件上设置 隔离 位 我的文本编辑器设计用于处理 shell 脚本 如果设置了隔离位 则无法从命令行执行 shell 脚本 直到您在 Finder 中双击它并浏览 此应用程序是
  • bash - 从文本文件中删除多行不同的文本

    我正在处理大量日志文件 并且大多数日志文件都有大量被记录多次的重复字符串 为了使与此类事情没有太多关系的其他人 也为我自己 轻松查看日志 我想制作一个脚本来删除一些可能对其他人造成 误报 的文本行 嘿管理员 我多次出现这些错误 gt 叹息
  • 使 Swift 类符合需要 init 的协议

    我有以下内容protocol in Swift protocol FooConvertible typealias FooType init foo FooType 我会做Swift类在类定义中符合它 class Bar FooConver
  • iOS 新手。预期的表达错误?

    这看起来很不寻常 因为该方法与我的 showAnswer 方法完全相同 所以我想我应该在这里问 import QuizViewController h interface QuizViewController end implementat
  • npm 不起作用,总是出现此错误 -> 错误:找不到模块 'are-we-there-yet'

    我尝试在 Mac 上使用 Yosemite 安装 grunt 节点已经安装在最新版本中 如果我在终端中输入 node v 我会得到 v0 12 5 行 那挺好的 但是当我想用 npm 安装某些东西时 我只得到一个错误 我尝试了 sudo n
  • 如何在 mac yosemite 上撤消“brew link --force openssl”

    我在尝试使用 php54 升级酿造公式时遇到了一些问题 我在github上找到了一些解决这个问题的建议openssl php 酿造错误 https github com Homebrew homebrew php issues 1181 其
  • 使用导航控制器在 Storyboard 中呈现视图控制器 - Swift

    我目前在下面的新故事板中显示了一个 viewController var storyboard UIStoryboard UIStoryboard name AccountStoryboard bundle nil var vc Welco
  • 即时将图像添加到 AR 资源以进行图像识别

    ARKit1 5介绍图像识别 在代码中 您必须创建一组参考图像 如下所示 let referenceImages ARReferenceImage referenceImages inGroupNamed AR Resources bund
  • 将 Facebook 图片 URL 上传到 Firebase 存储

    我正在尝试将用户的 Facebook 个人资料图片上传到 Firebase 存储 let dictionary result as NSDictionary let data dictionary objectForKey data let
  • 如何正确使用 nsoperationqueue 的 autoreleasepool

    我有一个正在重构的应用程序 我刚刚实现了多线程 以便 UI 可以运行得更流畅 在 iPhone 模拟器中 我没有遇到任何泄漏 但在运行 iOS 4 2 的 iPhone 3G 上进行测试时 出现了内存泄漏 我已经做了很多搜索来使用操作队列实
  • Pip 突然使用了错误版本的 Python

    在 os x 上使用 pip 时遇到一个奇怪的问题 据我所知 快速查看我的 bash history 似乎可以确认 我最近没有对我的配置进行任何更改 唉 pip 命令似乎突然使用了与以前不同的 python 版本 到目前为止 我使用命令 p
  • 在应用程序内启用或禁用 Iphone 推送通知

    我有一个 iPhone 应用程序 可以接收推送通知 目前 我可以通过转到 iPhone 设置 通知来禁用我的应用程序的推送通知 但我想在我的应用程序中添加一个开关或按钮来启用或禁用推送通知 这是可以做到的 因为我在 foursquare i
  • 使用 NSOutlineView 作为文件系统目录浏览器的 Swift 代码

    我已经在这段 Swift 代码上苦苦挣扎了一段时间 但没有发现问题 代码 下面应该提供文件目录作为 NSOutlineView 的数据源 GUI 非常简单 只是一个带有 NSOutlineView 和 OutlineViewControll

随机推荐

  • 如何右对齐

    标签?

    我有几个 p 我想要右对齐的标签 有谁知道如何做到这一点 CSS p text align right INLINE p p style text align right Some Text p jQuery p css text alig
  • 如何使用 flutter google_maps 插件获取可见地图的边界?

    我试图找出 flutter 的谷歌地图插件中谷歌地图可见部分的边界框是什么 可以获得吗 如果不是 是否可以根据缩放级别和地图中心的纬度 经度来计算边界框 那将是GoogleMapController getVisibleRegion
  • 如何从 Azure DevOps 中的 YAML 管道获取阶段结果

    到目前为止 我正在使用Azure DevOps REST Api从 Azure DevOps 中的版本获取数据以用于报告目的 显然 这将随着使用 CI CD gt YAML 和多阶段管道 当前预览 的新方式而改变 在这种情况下 构建和发布策
  • 分块读取大文件c#

    我想逐块读取非常大的文件 4GBish 我目前正在尝试使用StreamReader和Read 读取方法 语法是 sr Read char buffer int index int count 因为index is an int它会overf
  • 缓存策略,输出缓存与数据缓存或两者兼而有之?

    我正在开发一个 ASP NET MVC 项目 现在我想开始考虑我的缓存策略 我试图让我的框架尽可能开放以供缓存使用 据我在 Scott Hanselman 的播客中听到的消息 StackOverflow com 使用页面输出缓存并压缩该内容
  • Spring Boot 在 Gradle 中获取包的属性

    我正在尝试将我的项目从 Maven 构建转换为 Gradle 目前项目使用Spring Boot 在我当前的 Maven 配置中 我有
  • 如何解决VScode UnsupportedClassVersionError?

    Problem 当我运行 HelloWorld 时 它返回 java lang UnsupportedClassVersionError HelloWorld 已编译 通过更新版本的 Java 运行时 类文件版本 52 65535 该版本的
  • 函数中的自动参数类型

    我想知道标准委员会是否考虑扩展C 14auto关键字来推导函数模板参数类型 就像现在泛型 lambda 中存在的那样 正如这个答案中很好地描述的那样 因为它适用于 lambda 函数 所以它也应该适用于任何函数 当然 这对于经典语法来说是完
  • JavaScript 中的词法范围

    我对 JavaScript 中的作用域到底是如何工作的感到有点困惑 主要是词法作用域 我知道全局作用域中的变量可以在任何地方访问 在 JavaScript 中创建新作用域的唯一方法是通过创建函数 或在 ES6 中使用 let 但是 我不太明
  • Flutter如何手动安装包

    有没有办法手动下载包并安装 使用他们的包管理器真是令人沮丧 这次下载只需要 0 4 秒 但每次尝试多次后都无法下载 每次都要等待几分钟 实在是太不可靠了 至少有办法让我看到进度条之类的吗 我在浏览器中 2 秒就能下载的东西却每次都能成功 下
  • CreateProcess 在 Windows 7 下不会创建额外的控制台窗口?

    我正在尝试使用 CreateProcess 运行一个进程 并在单独的控制台窗口中独立运行它 我可以使用 system 函数来实现这一点 但我更喜欢 CreateProcess 因为它使我可以指定环境和工作目录 获取进程的句柄 以及在需要时通
  • 安装 PostgreSQL 9.0 后如何更改 NAMEDATALEN 配置?

    我支持一些旧版 PostgreSQL 8 3 4 数据库 并将它们迁移到一些较新的 Windows Server 2008 硬件上 我被告知 NAMEDATALEN 数字需要高于默认值 据我了解 NAMEDATALEN 配置不存在于配置文件
  • Capistrano 3 资产:预编译需要数小时。停在 css 文件处

    正如它所说 我无法让 capistrano 3 做assets precompile正确 即使几个小时后 它仍然说写信给 css服务器上的文件 UPDATE 我正在玩 我尝试了 m1 medium 当它到达某个点时 就会发生同样的事情 它只
  • 将值从 SQL Server 导出到 txt 文件

    我想将 SQL Server 中的值导出到 txt 文件 我了解 BCP 在那里我需要提供查询或表名称才能从表中导出数据 我不想导出数据 但我想导出分配给变量的值 我该怎么做 有什么帮助吗 使用查询收集要导出的变量 像这样的东西 DECLA
  • 找不到模块“模块名称”的声明文件。 '/path/to/module-name.js' 隐式具有 'any' 类型

    我读的是 TypeScript模块分辨率 works 我有以下存储库 ts stack di 编译后目录结构如下 dist annotations d ts annotations js index d ts index js inject
  • git 将分支推送到具有不同名称的新存储库

    如何使用分支的新名称将分支推送到不同的存储库 例如我有一个分支feature1在回购协议上abc我想推送到回购协议xyz并使其成为主分支 我尝试使用重命名远程git分支但在新的存储库上执行 git 克隆后 我收到了错误消息 git 警告 远
  • 我可以通过蓝鸟承诺提前打破链条吗?

    我不一定想犯错误 但我有 getFromDb then tradeData gt if not tradeData DO NOT CONTINUE THE CHAIN else getLatestPrice tradeData then l
  • 无法使用冒号映射 docker 卷

    当主机目录路径包含冒号时 有没有办法将主机目录挂载为数据卷 例子 v colon path test data 在这种情况下 它正在治疗data作为附加选项 这 colon path test是正确的 Unix 路径 是的 随着 mount
  • ASP.NET MVC、AngularJS、Bower 和部署站点文件夹结构

    我读过很多有关站点文件夹结构 开发和部署 的文章和问题 但仍然误解了下面的问题 我标记了当前的文件夹结构 橙色 看起来像lib or vendor文件夹 我想在其中存储独立组件 Blue 文件夹包含我自己的 相对于当前项目 应用程序 的文件
  • 如何以编程方式连接 Swift / MacOS 中的插座和操作

    我有一个简单的例子 我通过按住 Ctrl 键并将其拖动到控制器类来连接左按钮 1 和标签 1 如何以编程方式对右键 2 label2 执行相同操作 无需 Ctrl 拖动 这是我的代码 class ViewController NSViewC