当我导航到我的一个xib文件时,Xcode会将文件标记为已触摸。撤消和还原无效。保存似乎没有坏处,但是故障导致我经常额外的git工作。
有没有其他人看过这个或者对我的MainWindow.xib中的某些内容有所了解会导致它?
2016年编辑 - 仍在发生!
答案 0 :(得分:27)
这是对Bug ID#9847336的跟进。经过进一步调查后,已确定这是一个已知问题,目前正在通过工程进行调查。此问题已在我们的错误数据库中以原始错误ID#9056156提交。用于跟踪此重复问题的原始错误号可在State列中找到,格式为:Duplicate / OrigBug#。
答案 1 :(得分:13)
在尝试了许多不同的解决方案来解决这个非常烦人的错误之后,我发现了一种有效的方法(它肯定不是“修复”,而是一种解决方法)。
完成控制后锁定控制器。
在故事板中选择一个视图控制器,打开“标识”检查器,然后在“文档”部分的底部,您将看到“锁定”下拉列表。从锁定下拉列表中选择“所有属性”。
如果你为所有给你问题的控制器(或者通常只是所有控制器)执行此操作,你会注意到当你打开故事板时,Xcode仍然会修改各种元素的帧,但是立即撤消更改。
这导致开发周期为:
如果能够更好地满足您的需求,锁定也适用于逐个视图的情况。
这个bug现在已经有很长一段时间了,它似乎不会很快得到修复,所以不幸的是现在已经足够了。
答案 2 :(得分:3)
我个人觉得知道它是一个已知的错误并不能解决问题。这是我到目前为止所知道的以及如何防止它们出现。
注意:这是针对启用了AutoLayout的故事板。我还没有想到手动故事板。
以下是按钮的示例。
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Ebd-ny-Ill">
<rect key="frame" x="97" y="5" width="135" height="30"/>
<color key="backgroundColor" white="0.94557291669999999" alpha="1" colorSpace="calibratedWhite"/>
<constraints>
<constraint firstAttribute="width" constant="86" id="bXV-mS-ksp">
<variation key="heightClass=regular" constant="135"/>
</constraint>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<state key="normal" title="See Full Menu">
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
</state>
<variation key="default">
<mask key="constraints">
<exclude reference="bXV-mS-ksp"/>
</mask>
</variation>
<variation key="heightClass=regular" misplaced="YES">
<rect key="frame" x="97" y="5" width="135" height="28"/>
<mask key="constraints">
<include reference="bXV-mS-ksp"/>
</mask>
</variation>
<connections>
<action selector="showMenu:" destination="eQk-yf-uDh" eventType="touchUpInside" id="xOP-Se-FXQ"/>
</connections>
</button>
如果您看一下,您会看到该按钮有一个名为<rect/>
的元素。这定义了UI项目的大小和位置。如果你看下面的话,你还会看到一个名为<variation/>
的元素,它根据大小等级描述位置的变化。为了确定这个位置,我们必须使用以下步骤:
<rect/>
和<variation/>
中警告的建议。<variation/>
元素已消失。在我的示例中,我必须将x="97"
更新为x="597"
。
我还在处理没有<variation/>
的元素。我一想出来就会立即更新这个答案。