Swift -- UIMenuController中重写can
2019-12-17 本文已影响0人
生无可恋的程序员
项目中遇到的问题记录下:
Swift中UIMenuController中要获取第一响应者才能弹出此控件,百度中都是说要重写canBecomeFirstResponder,因为OC是这样写的
//OC
- (BOOL)canBecomeFirstResponder {
return YES;
}
没注意想当然就写成这样了
//Swift
override func canBecomeFirstResponder() ->Bool {
return true
}
但是这样是会报错的,还不知道啥原因。
后面command进去看,才恍然大悟这是个属性变量,重写它的get方法就行了。
//就是这样
override var canBecomeFirstResponder: Bool {
return true
}
//为了体现get方法,可以这样写,更直观。
override var canBecomeFirstResponder: Bool {
get {
return true
}
}
很简单的东西,但是很多人应该遇到过,尤其是OC刚转Swift的朋友。Swift对数据类型要求很严格,对方法func和属性变量var或let也是严格区分的。