【发布时间】:2014-11-15 22:41:29
【问题描述】:
我创建了一个自定义 UITextField,其中包含一个额外的用户定义的运行时属性 validRange,我可以在情节提要视图中设置它。 我使用此属性检查 EndEditing 方法以验证新设置的文本。 我工作得很好,直到我必须从 {-100,100} 设置一个有效范围 由于 NSRange 使用 NSUInteger,因此不可能有负值。
实现这一目标的最佳方法是什么? 如果我使用 CGSize 而不是 NSRange 是否可以接受?
更新内容 Xcode 仅为用户定义的运行时属性提供以下数据类型选择:
这意味着我无法定义一个新结构来使用 NSInteger 创建一个 CustomRange。 由于 Point,Size 都是 {NSInteger,NSInteger} 数据类型,我考虑过使用它们。但这肯定是一种误用,所以我想知道是否有人知道更好的解决方案,例如误用 Point 或 Size 来使其工作。
作为另一种解决方法,我可以使用 String,我会手动将其拆分为自定义 UITextField 的方法,但是没有类型安全性。
【问题讨论】:
-
NSRange 或 CGSize 之间没有相关性,两者的用途不同。我想知道,你打算在这里实现什么目标?
-
使用
NSInteger定义您自己的struct。您可以根据需要设置为start和length或start和end。 -
@ldindu 我在我的问题中添加了一些信息,以便更好地了解我想要实现的目标。
-
@rmaddy 这是一个好主意,但我认为在这种情况下不实用,因为我需要从给定列表中进行选择(请参阅更新的问题)
标签: xcode nsrange nsuinteger