Visual Studio for Mac 不同步 Xcode 11.6 和 Interface Builder 中所做的更改

Posted

技术标签:

【中文标题】Visual Studio for Mac 不同步 Xcode 11.6 和 Interface Builder 中所做的更改【英文标题】:Visual Studio for Mac is not synching the changes made in Xcode 11.6 and Interface Builder 【发布时间】:2020-07-28 15:22:18 【问题描述】:

我正在 Visual Studio for Mac 上使用 Xamarin C# 开发 Mac OS 应用程序,因为我的要求是使已经开发的 windows 应用程序与 mac 兼容或新的适用于 mac os 的应用程序类似于 windows 之一,选择 Xamarin 似乎是公平的选择我想重用 Windows 应用程序中的一些代码,所以我使用这个指南开始了新的 Mac 项目: https://docs.microsoft.com/en-us/xamarin/mac/get-started/hello-mac

现在,当我在 Xcode 和 Visual Studio 之间同步设计代码时遇到问题时,无论 UI 发生什么变化,我在 Xcode 上创建的 IBOutlet、Actions 都无法在 Visual Studio 设计器文件中同步。

例如我已经为 viewcontroller.h(在 Xcode 上)中的标签创建了 IBOutlet,它应该在 viewcontroller.designer.cs 文件(Visual Studio)中自动转换为 C# 代码,但遗憾的是它没有发生。

【问题讨论】:

【参考方案1】:

我在使用 VS for Mac 和 XCode 12.2 时遇到了困难,我发现我做错了几件事。

XCode 似乎默认打开 .m 文件(过去几年可能并非总是如此),所以当我打开助手时(我在故事板中工作).m 文件是默认打开,但出口需要进入.h文件。我必须确保在 Google 助理中打开了 .h 文件。 当控制拖动到 .h 文件以创建插座时,我将插座 放在了@interface 的花括号内。这将创建一个看起来像插座的东西,但它不会被 Visual Studio 识别为这样。我必须确保在 .h 文件中指向 @interface 大括号外部的行,以便创建的插座看起来像这样:
@property (nonatomic, retain) IBOutlet UIImageView *myImageViewOutlet;

完成此操作后,outlet 属性将同步到 Visual Studio,并在相应的 .designer 文件中创建。

【讨论】:

以上是关于Visual Studio for Mac 不同步 Xcode 11.6 和 Interface Builder 中所做的更改的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 2017 for Mac 快捷键

Visual Studio for Mac 2017预览版 初体验

在 Visual Studio 2017 for MAC 中抑制命名规则冲突 IDE1006

Visual Studio for Mac:缓存位置

Visual Studio for mac从入门到放弃1

.NET6 与 Visual Studio for Mac M1 不兼容,我可以为 xamarin 使用啥?