我的代碼中有幾個不同的類使用相同的方法 - 導致很多重複的行 - 我最近發現了有關添加類別的承諾有效解決問題的類別。爲了讓中較小的一個例子,我以前的方法是(通常)被稱爲傳統的方式是這樣的:從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