You need to enable JavaScript to run this app. Swift5开发Mac端自制浏览器时遇NSButton无clicked成员的Xcode报错
优惠活动
大模型
产品
解决方案
定价
更多

Swift5开发Mac端自制浏览器时遇NSButton无clicked成员的Xcode报错

报错核心原因

NSButton 属于macOS开发的Cocoa框架类,在Swift 5的官方API规范中,不存在名为 clicked 的成员属性/方法,这是触发当前编译报错的直接原因。
这类写法一般是和其他框架的按钮API混淆了:比如误把iOS端UIKit的UIButton逻辑、其他语言的按钮事件判断,或是Lua开发中接触过的交互逻辑,套用到了NSButton的实现上。

代码修正方案

你的现有实现存在两个可直接简化的问题:

  • 被@IBAction修饰的方法,仅当绑定的按钮被用户点击触发时,系统才会调用该方法,不需要在方法内部额外判断“按钮是否被点击”
  • 你当前编写的if和else分支中,执行的逻辑完全一致,都是调用webView.reload(),这个判断块本身没有实际作用

修正后的可正常运行的代码如下:

@IBAction func didrefreshButtonTapped(_ sender: NSButton) {
    webView.reload()
}
补充:如果需要判断按钮的选中状态

如果你当初编写sender.clicked == 0的判断逻辑,是想实现图片按钮的状态切换(比如普通状态显示刷新图标、选中按下时显示停止加载图标),NSButton 对应的状态判断属性为 state,示例写法参考:

@IBAction func didrefreshButtonTapped(_ sender: NSButton) {
    // 切换按钮选中状态,用于切换不同的按钮图片
    sender.state = (sender.state == .off) ? .on : .off
    // 执行网页刷新逻辑
    webView.reload()
}

内容的提问来源于stack exchange,提问作者Joe Powerse

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.03 04:54:09