我使用其他用户定义的运行时属性validRange创建了一个自定义UITextField,我可以在storyboard视图中设置它。 我使用此属性检查EndEditing方法以验证新的设置文本。 我工作得很好,直到我必须设置{-100,100}的有效范围 由于NSRange使用NSUInteger,因此不存在负值。
仍然能够实现这一目标的最佳方法是什么? 如果我使用CGSize代替NSRange会接受吗?
更新内容 Xcode只为我提供了以下用户定义的运行时属性的数据类型选择:
这意味着我无法定义一个新的结构来创建一个带有NSInteger的CustomRange。 由于Point,Size都是{NSInteger,NSInteger}数据类型,我考虑过使用它们。但这肯定是一种误用,所以我想知道是否有人知道一个更好的解决方案,因为滥用Point或Size来实现这一点。
作为另一种解决方法,我可以使用String,我手动将其拆分为自定义UITextField的方法,但是没有类型安全。
答案 0 :(得分:0)
然后我建议你定义两个具有合适名称的NSNumber属性来代表NSRange值而不是滥用CGSize,因为使用CGSize会混淆其他读者/程序员,因为我们有一个说法,我们为其他人编写代码而不是为自己编写代码。
并且有一个NSNumber类方法如下
+ (NSNumber *)numberWithInteger:(NSInteger)value
允许您按预期包装有符号整数值。