我的代码中有几个不同的类使用相同的方法 - 导致很多重复的行 - 我最近发现了有关添加类别的承诺有效解决问题的类别。为了让中较小的一个例子,我以前的方法是(通常)被称为传统的方式是这样的:从NSTextField类别内访问视图?
if((thisNum=[self valueInTextField:ctr]) != 0)
//... do stuff here...
- (int)valueInTextField:(int)tagNum
{
NSTextField *field = [[prizeWindow contentView] viewWithTag:tagNum];
int value = [field intValue];
return value;
}
我删除了上述方法,并添加类别:
@implementation NSTextField(GetFieldValue)
- (int)valueInTextField
{
NSTextField *field = [[[self window] contentView] viewWithTag:tagNum]; // DOESN'T LIKE THIS!!
return [self intValue];
}
@end
然而,不喜欢我要求它使用[[self window] contentView]去查找textField本身,所以唯一可以让它工作的方式是(明显地)删除违规行并传递如下内容:
if([[[[self window]contentView]viewWithTag:ctr] valueInTextField] != 0)
我相信你可以看到我想在这里实现的目标。有没有什么办法可以让我的类别识别上面暗示的必填字段 - 即不必亲自传递它?在此先感谢:-)
谢谢,smorgan。这正是我所期待的:-)欣赏你的输入! – Bender 2010-03-08 04:29:09