在 Mac Catalyst 项目中未调用 IBAction
Posted
技术标签:
【中文标题】在 Mac Catalyst 项目中未调用 IBAction【英文标题】:IBAction not called in Mac Catalyst project 【发布时间】:2020-02-28 20:48:13 【问题描述】:我在 Interface Builder .xib 文件中有一些工具栏按钮,但单击它们不会在我的视图控制器中调用它们对应的 IBAction 方法。
我知道视图控制器已连接到笔尖,因为在视图控制器中这样的测试代码具有预期的结果:
self.saveButton.title = @"foo";
当我单击按钮时,它显示选定状态,但当我释放它时没有任何反应。方法定义是这样的……
- (IBAction)save:(UIButton *)sender;
...我在 Interface Builder 的 Connections Inspector 中看到了连接。我还有其他可以正常工作的按钮,但我看不出这个有什么不同。
【问题讨论】:
【参考方案1】:我在 IBAction 方法中的 sender 参数类型错误。我不知何故有这个:
- (IBAction)save:(UIButton *)sender;
但是由于一个条形按钮项正在调用它,它应该是:
- (IBAction)save:(UIBarButtonItem *)sender;
更新代码后,我不得不在 Interface Builder 中取消链接并重新链接按钮。然后就成功了!
多年来我一直在 ios 上使用此代码,没有出现任何问题,但显然 Mac Catalyst 平台对此类错误的容忍度较低。
我还没有看到很多 Mac Catalyst 问题发布,所以希望这会对处于相同情况的人有所帮助。
【讨论】:
以上是关于在 Mac Catalyst 项目中未调用 IBAction的主要内容,如果未能解决你的问题,请参考以下文章
Mac-catalyst - Mac 催化剂应用程序的最小窗口大小
如何在 Mac 上的 Mac Catalyst 应用程序中使用钥匙串?