我想知道是否有任何方法可以使 UITextField
的正确 View 仅在内部至少有一个字符时可见,因为通过设置 UITextFieldViewModeWhileEditing
将在我专注于该字段时显示,而不是在我开始输入时显示。
我只能想出实现 UITextFieldDelegate
并在用户键入时触发的方法之一上执行此操作。这里唯一的问题是,一旦我创建了一个文本字段并将其添加到 View 中,我就将文本字段的委托(delegate)更改为其他内容。那是因为我通过子类化 UITextField
创建了一个自定义文本字段,我在不同的地方初始化它,在那些不同的地方我将它的委托(delegate)分配给它启动的当前位置。
最佳答案
这是一个更好的主意。 UITextField 发布更改通知。你的子类可以这样观察自己:
// in RSSUITextField.m
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(textFieldChanged:)
name:UITextFieldTextDidChangeNotification
object:self];
然后实现 textFieldChanged:
并在其中更改您的 rightView 状态。这个答案优于我留下的另一个答案,但我不会删除那个答案,因为它也有效,并且对于控件不发布我们关心的状态更改通知的情况来说,这是一种有用的技术。
由于 RSSUITextField 的每个实例都将通过 NSNotificationCenter 观察自己,因此当它不再重要时,每个实例都有责任将自己作为观察者移除。执行此操作的最晚时间是在 dealloc 上...
- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
关于ios - 当用户在字段中键入至少一个字符时,uitextfield rightView 可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20585250/