ios - 当用户在字段中键入至少一个字符时,uitextfield rightView 可见

标签 ios objective-c ios7

我想知道是否有任何方法可以使 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/

相关文章:

ios - 在 iOS 应用程序中测试 Cognito 身份验证

ios - 如何创建一个内部有透明圆圈的 UIView(快速)?

iphone - 减小第三行的 UIButton 标签字体大小

html - 我希望简单帮助页面中的 href 链接能够在 Safari 中打开

c# - 如何为 Unity 获取帧速率独立的触摸位置?

ios - 使用JASidePanels

ios - 呈现模态视图 Controller 的延迟

iphone - 如何优化quartz 2d?

objective-c - iOS/Objective-C 的动画/过渡创建器?

ios - 设置 AppleLanguages 在 iOS 7 上不起作用?