gpt4 book ai didi

ios - 无法在 UISearchBar 中将 UITextField 的 borderStyle 设置为 None

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:14:47 24 4
gpt4 key购买 nike

我正在尝试删除 UISearchBarUITextFieldtextborderstyle。我知道我正在获取对正确对象的引用,因为我能够将 TextBorderStyle 更改为 RoundedRect 并看到可见的变化。

我尝试使用以下代码对 UISearchBar 进行子类化:

- (void)layoutSubviews {
UITextField *searchField;
NSUInteger numViews = [self.subviews count];
for(int i = 0; i < numViews; i++) {
if([[self.subviews objectAtIndex:i] isKindOfClass:[UITextField class]]) { //conform?
searchField = [self.subviews objectAtIndex:i];
}
}
if(!(searchField == nil)) {
[searchField setBorderStyle:UITextBorderStyleNone];
}
[super layoutSubviews];
}

我也在类里面试过这个:

UITextField *txtSearchField = [_searchBar valueForKey:@"_searchField"];
[txtSearchField setBackgroundColor:[UIColor clearColor]];
[txtSearchField setBorderStyle:UITextBorderStyleNone];

这些都不起作用。默认情况下,如果我手动将它设置为 None,它似乎有 UITextBorderStyleLine。不幸的是,我一直无法找到删除边框样式的方法。有谁知道如何做到这一点?我正在尝试解决这个问题,因为我需要我的搜索栏看起来像一个 UITextField。我正在讨论此时是否只是切换到幕后的 UITextField

最佳答案

我很确定实现此目的的唯一方法是继承 UISearchBar!

在您对它进行子类化后,在您的 layoutSubviews 方法中尝试此代码!

- (void)layoutSubviews {
UITextField *searchField;
NSUInteger numViews = [self.subviews count];
for(int i = 0; i < numViews; i++) {
if([[self.subviews objectAtIndex:i] isKindOfClass:[UITextField class]]) { //conform?
searchField = [self.subviews objectAtIndex:i];
}
}
if(!(searchField == nil)) {
searchField.textColor = [UIColor whiteColor];
[searchField setBackground: [UIImage imageNamed:@"buscador.png"] ];
[searchField setBorderStyle:UITextBorderStyleNone];
}

[super layoutSubviews];
}

问题在这里找到remove the border of uitextfield in uisearchbar回答您最初的问题!

您还可以引用How to customize apperance of UISearchBar获取更多信息!

希望这对您有所帮助!

关于ios - 无法在 UISearchBar 中将 UITextField 的 borderStyle 设置为 None,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15751920/

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