在iOS 7上UISearchBar左对齐占位符文本?
2019年08月07日
作者:佚名
在iOS 7 UISearchBar上,占位符文本居中,我想禁用它,并使其始终像以前一样粘在左边.
有一个私有的方法setCenterPlaceholder,在diff和调用这个与BOOL将做出旅程. https://gist.github.com/nscoding/7220368
标题文件
@interface NSCodingSearchBar : UISearchBar // Default by the system is YES. // https://github.com/nst/iOS-Runtime-Headers/blob/master/Frameworks/UIKit.framework/UISearchBar.h @property (nonatomic,assign,setter = setHasCentredPlaceholder:) BOOL hasCentredPlaceholder; @end
执行文件
#import "NSCodingSearchBar.h" // ------------------------------------------------------------------------------------------ @implementation NSCodingSearchBar // ------------------------------------------------------------------------------------------ #pragma mark - Initializers // ------------------------------------------------------------------------------------------ - (instancetype)initWithFrame:(CGRect)frame { if ((self = [super initWithFrame:frame])) { self.hasCentredPlaceholder = YES; } return self; } // ------------------------------------------------------------------------------------------ #pragma mark - Methods // ------------------------------------------------------------------------------------------ - (void)setHasCentredPlaceholder:(BOOL)hasCentredPlaceholder { _hasCentredPlaceholder = hasCentredPlaceholder; SEL centerSelector = NSSelectorFromString([NSString stringWithFormat:@"%@%@",@"setCenter",@"Placeholder:"]); if ([self respondsToSelector:centerSelector]) { NSMethodSignature *signature = [[UISearchBar class] instanceMethodSignatureForSelector:centerSelector]; NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature]; [invocation setTarget:self]; [invocation setSelector:centerSelector]; [invocation setArgument:&_hasCentredPlaceholder atIndex:2]; [invocation invoke]; } } @end
我想知道是否有其他的,不是“哈奇的方式”做同样的事情.
解决方法
要在iOS7中保留占位符的左对齐方式,您可以在占位符字符串的末尾添加空格.例如:
_searchBar.placeholder = @"Search ";
请注意,应该为每个搜索栏和每种语言单独完成.
可以尝试在任何语言的文本之后自动计算所需的空格,但是似乎不可能读取searchBar的textField框架的大小
<UISearchBarTextField: 0x1349c160; frame = (0 0; 0 0);
以上是来客网为你收集整理的在iOS 7上UISearchBar左对齐占位符文本?全部内容,希望文章能够帮你解决在iOS 7上UISearchBar左对齐占位符文本?所遇到的程序开发问题。
如果觉得来客网网站内容还不错,欢迎将来客网网站推荐给程序员好友。