c# - 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# 代码,但遗憾的是它没有发生。
解决方案
我在使用 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
文件中创建。
推荐阅读
- r - R:在 pheatmap 的绘图区域添加一些文本
- automation - 等待柏树中的重定向?
- vue.js - 只改变一个语法元素更漂亮
- java - 插口 API | 播放器 扩展播放器类别
- html - 删除 HTML5 视频播放器菜单按钮
- python - 使用 xlearn 从现场感知因子分解机中获取权重向量?
- c# - 有没有使用 C# 获得最近次数的函数?
- java - 客户端取消请求后如何在 Micronaut/Netty 上捕获服务器错误
- node.js - 如何将减少/优化的图像从节点服务器发送到 Angular 客户端(但将原始质量保存到数据库)
- vba - MS Project 运行时错误 91 - 任务对象