1

In Xcode 6 Beta 6,

I am unable to use any NSFontManager methods in Swift. For example:

var fontManager = NSFontManager.sharedFontManager()

fontManager.setAction("changeFont:")

I always get the error: NSFontManager does not have a member named setAction

This occurs for any method (e.g. setDelegate, setTarget)

Thanks for any help.

4

1 回答 1

2

尝试这个:

fontManager.action = Selector("changeFont:")

属性是使用 Swift 中的属性语法设置的。

在 ObjC 中,使用(如果不使用@property)声明属性:

- (X) myProp { return ... }
- (void) setMyProp(X value) { ... }

在 Swift 中,属性声明看起来更像 C#:

var myProp : X { get { return ... } set { ... } }

因此,您不能使用与 ObjC 中相同的方法名称显式调用 setter(尽管我实际上不知道它将被编译成什么......)。

于 2014-08-23T21:02:53.277 回答