我有一个自定义视图控制器,可以从XIB加载对象,其中一个是NSPopover
。
我在视图控制器上有一个基本上传递给popover的方法,如下所示:
func showRelativeToRect(positioningRect: NSRect, ofView positioningView: NSView!, preferredEdge: NSRectEdge) {
self.popover.showRelativeToRect(positioningRect, ofView: positioningView, preferredEdge: preferredEdge)
}
但是,这会导致编译错误,我不太明白:
/Users/Craig/projects/.../EditItemPopoverController.swift:23:102: 'NSRectEdge' is ambiguous for type lookup in this context
这似乎是由NSRectEdge
的可用类型冲突引起的,这可以通过自动填充来证实:
如何我可以告诉Swift我想使用特定类型吗?潜入NSPopover.swift
课程,似乎正在使用版本:
typealias NSRectEdge = Int
但我不知道如何告诉Swift编译器,在我的视图控制器中,这个是我想要使用的类型。我可以通过定义采用Int
代替NSRectEdge
的方法来解决此问题,但我想使用与popover相同的方法签名。
答案 0 :(得分:1)
我尝试使用以下代码编译测试项目:
typealias NSRectEdge = Int
在文件的顶部,它工作 - 也许只是重新声明它的工作原理。但是,这并没有在任何地方记录。
我觉得c#中应该有一个单独的命令,例如using
,但那还没有。
答案 1 :(得分:0)
这似乎已在最新的测试版中得到解决。 (或者也许是Beta 6.我所知道的是它在Beta 7中正常运行。)