【发布时间】:2014-04-25 07:34:01
【问题描述】:
我正在访问 searchbar 的文本字段。这一直在变化
对于 iOS 6,我正在使用
textField = [searchbar.subviews objectAtIndex:1];
它在 iOS 7 中发生了变化,有一个视图,其中有一个子视图,我们可以从中获取 textField ,所以我正在为 iOS 7 或更高版本的 iOS 使用以下代码
UIView *searchbarview = [searchbar.subviews objectAtIndex:0];
NSLog(@"searchbarview.subviews Array is %@",searchbarview.subviews.description);
textField = (UITextField *)[searchbarview.subviews objectAtIndex:1];
现在从 iOS 7.1 开始,searchbarview 只有一个子视图,即 UISearchBarBackground,这与 iOS 7.0 不同,它有两个子视图,所以即使我使用 for 循环遍历所有子视图,我也无法获取 textField
谁能帮我解决这个问题 谢谢,
编辑 这是 searchbarview.subviews 返回的数组日志,您可以看到它只返回 1 个对象,即 UISearchBarBackground,所以我想知道 UITextField 对象在哪里
searchbarview.subviews Array is (
"<UISearchBarBackground: 0xe6bc9d0; frame = (0 0; 768 50); opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0xe6bcb20>>"
)
【问题讨论】:
-
为什么要访问 UITextField?
-
我想改变textfield的文本对齐方式
-
你能记录
UISearchBarBackground对象的子视图吗? -
你可以在
viewWillAppear试试你的代码!也许在显示搜索栏之前尚未分配 textField-object 。我在创建 UISearchBar 后尝试了我的代码,并遇到了像你这样的问题。
标签: ios objective-c uitextfield uisearchbar