首页 > 解决方案 > Visual Studio for Mac 不同步在 Xcode 11.6 和 Interface Builder 中所做的更改

问题描述

我正在 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、Action 都不会在 Visual Studio 设计器文件中同步。

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

标签: c#xcodexamarinvisual-studio-mac

解决方案


我在使用 VS for Mac 和 XCode 12.2 时遇到了这个问题,我发现我做错了几件事。

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

一旦我这样做了,outlet 属性就会同步到 Visual Studio 并在相应的.designer文件中创建。


推荐阅读