gpt4 book ai didi

ios - 将自定义协议(protocol)添加到 UITextField

转载 作者:行者123 更新时间:2023-11-30 14:19:23 25 4
gpt4 key购买 nike

我有一些用于身份验证和注册 View 的表单,我希望这些表单内的所有 UITextField 都有一个 UIButton 作为附件 View ,位于键盘上方。我希望能够设置此按钮的标题和操作

因为我希望所有这些文本字段都有一个,并且每个字段都有一个标题和一个操作,并且为了避免冗余,我考虑了一种协议(protocol)。我想要扩展自定义协议(protocol)之类的东西,例如 UITextFieldAccessoryViewDelegate 并符合某些功能,例如:-buttonAccessoryView 标题 ... -> 字符串-didClickOnAccessoryViewButton.. -> ()

我的思想是封闭的。有人可以给我一些想法来做我想做的事吗?

最佳答案

您可以使用associated objects来解决这个问题。这使您可以添加属性及其合成的 getter/setter。

@interface UITextField(AccessoryButton)

@property(readwrite, strong, nonatomic) UIButton *accessoryButton;

@end

#import<objc/runtime.h>
@implementation UITextField(AccessoryButton)

-(UIButton*) accessoryButton
{
objc_getAssociatedObject(self, @selector(accessoryButton));
}

-(void) setAccessoryButton:(UIButton *)accessoryButton
{
objc_setAssociatedObject(self, @selector(accessoryButton), accessoryButton, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}

将此类别包含到需要 UIButton 作为文本字段的表单中。然后像平常一样将操作和标题分配给 UIButton。

关于ios - 将自定义协议(protocol)添加到 UITextField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30683998/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com