gpt4 book ai didi

ios - - (CGRect) textRectForBounds :(CGRect)bounds not being called

转载 作者:行者123 更新时间:2023-12-01 17:25:45 28 4
gpt4 key购买 nike

我正在尝试在 UITextField 中移动文本使其垂直对齐正确。我在网上搜索过,一切都指向编辑这些方法:

- (CGRect) textRectForBounds:(CGRect)bounds


- (CGRect) editingRectForBounds:(CGRect)bounds

虽然我已经像这样编辑它们:
- (CGRect) textRectForBounds:(CGRect)bounds {
NSLog(@"hi");
return CGRectInset(bounds, 10, 10);
}

虽然它没有进入nslog。

我也尝试在文本字段上调用该方法但没有成功

这就是我初始化 TextView 并设置它们的方式:
-(void) viewWillAppear:(BOOL)animated {
textfield1 = [[UITextField alloc] init];
textfield2 = [[UITextField alloc] init];
textfield3 = [[UITextField alloc] init];
textfield4 = [[UITextField alloc] init];
for (UITextField *text in [NSArray arrayWithObjects:textfield1, textfield2, textfield3, textfield4, nil]) {
text.delegate = self;
text.placeholder = [placeholders objectAtIndex:i];
text.frame = CGRectMake(10, offsetTop, container.frame.size.width - 20, 40);
[text textRectForBounds:text.bounds];
[text editingRectForBounds:text.bounds];
text.borderStyle = UITextBorderStyleRoundedRect;
offsetTop += 50;
i++;
[container addSubview:text];
}
}

最佳答案

第 1 步 - 首先创建一个自定义文本字段 MyTextField

@interface MyTextField : UITextField

第 2 步 - 根据您的要求覆盖 MyTextField 方法
///place holder position

- (CGRect)placeholderRectForBounds:(CGRect)bounds
{
return CGRectInset(bounds, 8, 8);
}
// text position
- (CGRect)textRectForBounds:(CGRect)bounds {

return CGRectInset(bounds, 8,4);
}

// text position while editing
- (CGRect)editingRectForBounds:(CGRect)bounds {

return CGRectInset(bounds, 8, 4);
}

第 3 步 - 在您的 Controller 类中导入 MyTextField 并创建 MyTextField 的对象
#import "MyTextField.h"

-(void) viewWillAppear:(BOOL)animated {

MyTextField* textfield1 = [[MyTextField alloc] init];
// and so on

}

现在每个文本字段都将按预期工作。

关于ios - - (CGRect) textRectForBounds :(CGRect)bounds not being called,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22272800/

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