包含此警告的应用是否会通过App Store审核?
使用代码,它实际上在iPhone模拟器中呈现,但我应该如何在Xcode中删除上述警告?
2011年9月20日编辑:
我将发布有一天会删除此警告的代码。
2011年10月9日编辑:
这是我的解决方案,因为我找不到任何其他更好更容易的解决方案:
UIView *extrablue = [[UIView alloc] initWithFrame:CGRectMake(250,0,80,40)];
extrablue.backgroundColor = RGBCOLOR (95,95,95);
[self.view addSubview:extrablue];
mySearchBar = [[UISearchBar alloc]initWithFrame:CGRectMake(0, 0, 250, 40)];
//[mySearchBar setContentInset: UIEdgeInsetsMake(5,0,5,75)];
mySearchBar.placeholder = @"Search a term here ... ";
mySearchBar.backgroundColor = RGBCOLOR (95,95,95);
mySearchBar.delegate = self;
//[mySearchBar sizeToFit];
mySearchBar.autocorrectionType = UITextAutocorrectionTypeNo;
[mySearchBar setAutocapitalizationType:UITextAutocapitalizationTypeNone];
[self.view addSubview: mySearchBar];
答案 0 :(得分:2)
UISearchBar
不包含属性contentInset
- 这是UIScrollView
的属性。如果您的代码要求UISearchBar
更改其contentInset
,那么这是编码错误,应该删除。
如果你需要进一步的帮助删除它,那么一些额外的代码将是有用的。
答案 1 :(得分:1)
我发现 UISearchBar 响应 setContentInset:方法(在iOS 5.0.1上测试过)。
这导致涉及 NSInvocation:
的软化方法 if([aSearchBar respondsToSelector:@selector(setContentInset:)]) {
SEL aSelector = NSSelectorFromString(@"setContentInset:");
NSInvocation *inv = [NSInvocation invocationWithMethodSignature:[aSearchBar methodSignatureForSelector:aSelector]];
[inv setSelector:aSelector];
[inv setTarget:aSearchBar];
UIEdgeInsets anInsets = UIEdgeInsetsMake(5, 0, 5, 35);
[inv setArgument:&anInsets atIndex:2]; //arguments 0 and 1 are self and _cmd respectively, automatically set by NSInvocation
[inv invoke];
}
上面的代码使用anInsets参数中指示的CGRect调整UISearchBar(实际上是UITextField)的contentInset的大小。
父if语句(respondsToSelector :)可以避免在新版iOS中对此行为的更改。