2016-11-16 2 views
-2

benutzerdefiniertes UITextField: In der Click TextField Eingabe, Nach dem keyborad Popup, geben Sie den Hintergrund ein, um wieder in den Vordergrund zu kommen, Die App stürzt ab!UITextField von enterBackground zu enterForeground, Absturz der App

wenn Sie nicht TextField- Eingabe klicken, Hinter- oder Vordergrund Umwandlung, ist es normal, Teil des Codes:

@implementatio BKSearchViewController 
    - (void)setNavgationView { 
     BKSearchBar *searchBar = [[BKSearchBar alloc] initWithFrame:CGRectMake(20, 27, kScreenWidth - 90, 30)]; 
     searchBar.placeholder = @"输入昵称/拜托号"; 
     searchBar.delegate = self; 
     [searchBar setKeyboardType:UIKeyboardTypeDefault]; 
     [searchBar setReturnKeyType:UIReturnKeySearch]; 
     [searchBar setPlaceholderColor:kcallColor(@"a4a4a4")]; 
     [searchBar setPlaceholderFont:kFont(14)]; 
     [searchBar addTarget:self action:@selector(SearchTextFieldDidChange:) forControlEvents:UIControlEventEditingChanged]; 
     [navgationView addSubview:searchBar]; 
    } 
    @end 

    //BKSearchBar The key code 
       @implementation BKSearchBar 
       - (id)initWithFrame:(CGRect)frame 
       { 
        self = [super initWithFrame:frame]; 
        if (self) { 
         // 设置背景 
         self.backgroundColor = kcallColor(@"7d1d57"); 
         self.returnKeyType = UIReturnKeySearch; 
         // 设置内容 -- 垂直居中 
         self.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter; 
         [self UI]; 
        } 
        return self; 
       } 
    - (void)UI{ 
     // 设置左边显示一个放大镜 
     UIImageView *leftView = [[UIImageView alloc] init]; 
     omit... 
     //右边的view 
     UIImageView *rightView = [[UIImageView alloc] init]; 
     omit... 
    } 
      - (CGRect)placeholderRectForBounds:(CGRect)bounds{ 
       CGRect rect = CGRectMake(self.leftView.right, (self.height - 24)/2, bounds.size.width, 14); 
       return rect; 
      } 
      - (void)clearText{ 
       self.text = nil; 
      } 
      - (void)setPlaceholderColor:(UIColor *)color{ 
       [self setValue:color forKeyPath:@"_placeholderLabel.textColor"]; 
      } 
      - (void)setPlaceholderFont:(UIFont *)font{ 
       [self setValue:font forKeyPath:@"_placeholderLabel.font"]; 
      } 
+1

'Hintergrund oder Vordergrund Umwandlung '? kann nicht Ihre Fragen und zeigen Sie den ursprünglichen Code zeigen kein Bild für Code. – vaibhav

+4

nicht Screenshot von Code in Frage, PLZ direkt statt! – Lion

+0

haben Sie UISearchBar Delegate implementiert? Wenn ja, bitte poste diesen Code, damit wir eine Idee bekommen, was schief geht. – CodeChanger

Antwort

0

danken all das Problem behoben ist wegen der Laufzeit

!!
+ (void)swizzleInstanceMethod:(Class)class originSelector:(SEL)originSelector otherSelector:(SEL)otherSelector 
{ 
    Method otherMehtod = class_getInstanceMethod(class, otherSelector); 
    Method originMehtod = class_getInstanceMethod(class, originSelector); 
    // 交换2个方法的实现 
    method_exchangeImplementations(otherMehtod, originMehtod); 
} 
Verwandte Themen