针对对象的动作的“快捷方式”

时间:2014-12-11 23:18:19

标签: ios objective-c action hidden shortcut

所以我现在在项目中有3个对象:

_vLabel.hidden = YES;
_wLabel.hidden = YES;
_nextButton.hidden = YES;

正如你所看到的,我为所有人做.hidden事。有没有办法创建变量或其他东西,我只需要应用它而不是写整行,如:

_vLabel.hide;

提前致谢!

3 个答案:

答案 0 :(得分:1)

这样做似乎很愚蠢,因为你应该遵循任何其他iOS程序员期望和理解的惯例,但是你可以这样做:

UIView+MyCategory.h:
@interface UIView (MyCategory)
    -(void) hide;
@end

UIView+MyCategory.m:
@implementation UIView (MyCategory)
-(void) hide {
    [self setHidden:YES];
}
@end

usage:
[myView hide];

答案 1 :(得分:0)

我发现问题不清楚。什么是"快捷方式"在这种情况下?你怎么能得到更短的"更短的"比这个:

_vLabel.hidden = YES;
_wLabel.hidden = YES;
_nextButton.hidden = YES;

对我而言,"长度"在这里 - 需要缩短的事情 - 是你做了三次而不是一次。如果这些对象是您通常隐藏并一起显示的对象,那么让一个方法隐藏并显示所有将是一件好事。 :

- (void) toggle {
    _vLabel.hidden = !_vLabel.hidden;
    _wLabel.hidden = !_wLabel.hidden;
    _nextButton.hidden = !_nextButton.hidden;
}

它的代码一样多,但是一旦你编写了代码,那么每当你想要全部显示它们或隐藏它们时,你只需说:

self.toggle;

这实际上是一个捷径:

[self toggle];

所以你在这里做的就是写一个方法来改变语言,如果避免重复,这是一个非常合理的事情。

答案 2 :(得分:0)

嗯,如果您唯一的问题是写label.hidden = YES;的时间太长,那么为什么不使用代码片段呢?这样你就可以用较少的写作来保持命名约定。

您甚至可以使用Xcode创建这些代码段。只需选择文本并将其从边缘拖动(这部分可能非常棘手)到片段区域。

就个人而言,我会使用类似TextExpanderaText或其他任何你喜欢的东西。这些应用程序通常比Xcode更快,更易于使用。

只需在.hidden = YES;的相应代码段中创建,然后将其分配给.hide等快捷方式 所以,现在每当你想要隐藏某些东西时,你只需要写myLabel.hide TextExpander将其扩展为

myLabel.hidden = YES;

要再次显示内容,您可以将.show分配给.hidden = NO;