我有几个遵循这种模式的XIB:一个包含View子类的View Controller子类。我把控件放在那个视图上。
刚才,我试图在视图中添加一个新控件。我可以这样做,但我无法将新控件连接到插座。助手编辑器也不会显示视图子类标题,但如果我重新启动Xcode,它会暂时显示。我有一些其他的XIB没有视图控制器对象,而是将File的Owner设置为视图控制器子类。他们表现出同样的问题。
这是IB中的对象栏:
“矩阵编辑器视图控制器”是UIViewController的子类。这在助理编辑器的“对应部分”菜单中显示得很好,我可以从UIControls拖到它来创建出口&动作。
“Popup Cell View”是一个UIView子类。这是我的大多数网点和活动的所在地。以前这将出现在助理编辑器“对应部分”菜单中,我可以在它与我的控件和代码之间拖得很开心。现在,每当我向此视图添加一个新控件时,我都无法从弹出单元格视图对象拖动到新控件,如果它显示弹出单元格视图标题,也无法从新控件拖动到“辅助编辑器”窗口
我最近不得不升级到Lion(因此Xcode 4.2.1 build 4D502);我最后一次向我的XIB添加控件是在Snow Leopard下使用该操作系统上的最新Xcode。
我相信Xcode的缓存或某些内部状态是不正常的。我试过了:
及其各种组合。我还能做些什么来强制Xcode重新扫描所有内容并允许我将控件连接到插座?
编辑:我注意到我可以在View Controller中为我的新控件创建插座;我只是无法在View子类本身上执行此操作,这是我想要它们的地方。那里我已经有很多了。我的新版Xcode真的可以告诉我,我不允许这样做吗?当然不是。辅助编辑器的自动模式在两个对应部分(VC .h和.m)和四个(VC .h / .m和View .h / .m)之间每分钟左右更改一次。
编辑:我 能够连接插座,但只能通过这种复杂的方法:
所以有些东西非常明显。我该如何解决?
非常令人沮丧!
由于
答案 0 :(得分:2)
当我遇到这个问题时,通常是由于某种类型的类型不匹配。验证xib中对象的类名是否与接口中的类名和实现文件匹配。
答案 1 :(得分:1)
我是一个新手 - 我认识到这是一个蠢货,但希望这有助于某人。听起来有点像上面描述的问题。
突然,xcode拒绝向我的AppDelegate.m“插入新动作插座”(使用control + drag,从新添加的xib元素到@implementation类)。此外,Xcode不会像以前那样在.m文件中的每个IBAction方法旁边显示那个小黑圈。
Xcode允许从'source xib元素'拖动蓝线 - 但不会显示“Insert Outlet或Action”&在.m文件中“插入目标行”的目标高亮显示的蓝色圆圈线。
但是,我可以使用上述蓝线拖拽方法将新插座插入我的AppDelegate.h中。该档案装饰着可爱的小黑圈,正确。
我来的kludge就是这个
将'bogus @implementation code'添加到AppDelegate.h,按照:
#if 1
@implementation AppDelegate
@end
#ENDIF
控制+从新的xib元素拖动到.h
中提琴! xcode现在显示所需的“插入动作”&插入位置的蓝色圆圈线目标。我可以分配方法名称并表达我希望的语义。 Xcode源代码编辑器在“自动生成” - (IBAction)行的左侧显示一个可爱的小黑圈。例如,我按照以下内容添加了imanewxibobject:
#if 1
@implementation AppDelegate
- (IBAction)imanewxibobject:(id)sender {
printf("%s: hi there!\n",\_\_FUNCTION\_\_);
}
@end
#endif
(1 + 2)= 3。复制&粘贴 - (IBAction)imanewxibobject:...函数到我的实际AppDelegate.m(它真正属于的地方)。
(2 + 2)= 4。将#if 1(在AppDelegate.h中)转为#if 0
(3 + 2)= 5。重新编译。 Kablammo,新的UI元素充满了语义!
我尝试了所有:清理项目,删除项目中的文件等等。
我查看了那个.xib文件,发现它包含了许多似乎是交叉引用的标识符索引,有点你可能期望看到的,在这种文件中。
所以我仍然没有那些小黑圈 - (IBAction) - 但至少代码编译,我看到正确的方法标签字符串,对于Xcode Utilities->“显示Connections Inspector“,相对于新的UI元素。
有人知道如何在我的“ - (IBAction)”旁边恢复那些可爱的小黑圈吗?我发现它们非常可爱,并希望让它们回来。我没有看到任何“显示可爱的小黑圈”菜单选项。游民。也许在下一个Xcode中?