小编Asi*_*ike的帖子

在自定义UIView和UIViewController中同时使用相同的UITextFieldDelegate方法

我有一个UIView(名为HCTextFieldView)子视图:UITextFieldUILabel以上.

UITextField's代表等于自我.委派方法textFieldDidBeginEditingtextFieldDidEndEditing执行文本字段的背景突出显示效果.

接下来UIView我在我的使用这个自定义(HCTextFieldView)UIViewController.要处理工具栏中的"下一步"和"上一页"按钮的操作(附在文本字段的键盘上方),我需要相同的文本字段的委托方法UIViewController,代表被覆盖了.

**@interface HCBaseTextField : UIView <UITextFieldDelegate>**
...
@end

**@implementation HCBaseTextField {}**

...

textField = [[UITextField alloc] initWithFrame:CGRectMake(0, titleLabel.bottom, self.width - 20, self.height - titleLabel.height)];
**textField.delegate = self**;

...

#pragma mark - UITextField delegate

//textFieldBG - UIImageView that act as background

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
    [textFieldBg setImage:[[UIImage imageWithName:@"btn_vvod_medium_act"] stretchableImageWithLeftCapWidth:10 topCapHeight:10]];
    return YES;
}

- (BOOL)textFieldShouldEndEditing:(UITextField *)textField {
    [textFieldBg setImage:[[UIImage imageWithName:@"btn_vvod_medium_norm"] …
Run Code Online (Sandbox Code Playgroud)

uitextfield ios uitextfielddelegate appdelegate

5
推荐指数
1
解决办法
8387
查看次数

使用对象过滤嵌套数组

我有一系列类别。每个类别实例都有优惠属性。

class Category {
   var offers : [Offer]?
   var title : String?
   var id : Int?
}

class Offer {
    var type : String?
}

//global variable
var categories = [ categ1, categ2, ...]
Run Code Online (Sandbox Code Playgroud)

如何按 Offer.type 过滤类别?

我已经尝试过:

return categories.map { (category) -> Category in
    let offers = category.offers?.filter { $0.type == myType }
    category.offers = offers
    return category
}
Run Code Online (Sandbox Code Playgroud)

它有效,但第二次调用函数后数组变空。可能是因为报价被重写了?

然后我尝试了这个(产生了相同的错误结果):

var resultCategories = [Category]()

for category in categories {
    guard let offers = category.offers else { continue } …
Run Code Online (Sandbox Code Playgroud)

arrays filter swift

2
推荐指数
1
解决办法
2930
查看次数