2012-07-28 86 views
0

我不好意思問這個問題。我曾幾次見過它,但我不明白答案。我有一個自定義的鍵盤,我在一個單獨的視圖。它對一個文本框很有用。但現在我想要有多個文本框,鍵盤將輸入數字。我已將視圖控制器設置爲文本字段委託,並在您輸入任一文本框時彈出我的自定義鍵盤。但是,我必須設置數字的代碼僅適用於其中一個文本框。所以我想查看哪個文本框被選中,所以我將在該框中進行編輯。我使用的方法 - (BOOL)textFieldShouldBeginEditing:(*的UITextField)文本框,並試圖將下面的代碼...自定義鍵盤將文本放在多個文本框中

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField 
{ 
if ([numberOne isFirstResponder]) 
{ 
    [self.numberOne = currentTextField];  
} 
else if ([numberTwo isFirstResponder]) 
{ 
    [self.numberTwo = currentTextField]; 
}  
} 

的currentTextField是爲UITextField。然後,我想在下面的代碼中替換currentTextField來替換numberOne。

- (IBAction)buttonPressed:(UIButton *)sender 
{ 
NSString *button = [sender currentTitle]; 
NSRange decimalpoint = [self.numberOne.text rangeOfString:@"."]; 
if (self.userIsEnteringANumber) 
{ 
    if ([button isEqualToString:@"."] && decimalpoint.location != NSNotFound) 
    { 
     self.numberOne.text = self.numberOne.text; 
    }else 
     self.numberOne.text = [self.numberOne.text stringByAppendingString:button]; 
}else 
{ 
    self.numberOne.text = button; 
    self.userIsEnteringANumber = YES; 
} 
} 

然而,編譯器不喜歡我的線[self.numberOne = currentTextField];我嘗試了一些其他的建議,但不幸的是我不明白他們在說什麼。有沒有人有我的新手指引?非常感謝提前。

我已經修復了寬敞的幫助下的編譯器問題。謝謝。我textFieldShouldBeginEditing方法現在...

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField 
{ 
if ([numberOne isFirstResponder]) 
{ 
    self.currentTextField = self.numberOne;  
} 
else if ([numberTwo isFirstResponder]) 
{ 
    self.currentTextField = self.numberTwo; 
} 
return YES; 
} 

,我改變了IBAction爲buttonPressed以下...

- (IBAction)buttonPressed:(UIButton *)sender 
{ 
NSString *button = [sender currentTitle]; 
NSRange decimalpoint = [self.currentTextField.text rangeOfString:@"."]; 
if (self.userIsEnteringANumber) 
{ 
    if ([button isEqualToString:@"."] && decimalpoint.location != NSNotFound) 
    { 
     self.currentTextField.text = self.currentTextField.text; 
    }else 
     self.currentTextField.text = [self.currentTextField.text stringByAppendingString:button]; 
}else 
{ 
    self.currentTextField.text = button; 
    self.userIsEnteringANumber = YES; 
} 
} 

現在奇怪的事情發生了。當我點擊第一個文本字段時,鍵盤出現但沒有任何反應,然後我點擊第二個文本字段並在第一個文本字段中開始編輯。如果我點擊第一個文本字段,編輯從第二個開始。任何幫助,將不勝感激!!

回答

0

好了,我可以回答你的編譯器question-

要分配給currentTextField參考,它應該是:

currentTextField = self.numberOne;

發送消息時使用括號(調用對象的方法)。

你把你的任務包裹在括號裏,並且分配是錯誤的。

(你會被當前覆蓋你的引用與currentTextField您的文本框)

我需要看到更多的代碼,任何進一步診斷!祝你好運

編輯:(這是未經測試的變化,但你的想法)

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField 
{ 
if ([numberOne isFirstResponder]) 
{ 
    self.currentTextField = self.numberOne; 
    self.userIsEnteringANumber = NO; 
} 
else if ([numberTwo isFirstResponder]) 
{ 
    self.currentTextField = self.numberTwo; 
    self.userIsEnteringANumber = NO; 

}  
} 
+0

感謝您與編譯器問題的幫助。編譯器更快樂!但是,這並沒有解決我的問題。即使我用currentTextField更改了numberOne,但鍵盤並未將數字放在任何文本框中。雖然我輸入任何文本字段時仍然會調用我的鍵盤。你還需要看什麼其他的代碼?請讓我知道。再次感謝。 – Douglas 2012-07-28 22:41:04

+0

如果您合成了currentTextField,請使用self.currentTextField = self.numberOne;您還需要在更改firstResponder時將self.userIsEnteringANumber重置爲NO ...您可以省略self.currentTextField.text = self.currentTextField。文本; – spacious 2012-07-28 23:16:35

+0

是的,我已經合成currentTextField。我使用了所有的提示,謝謝編輯。但是相反的文本字段編輯仍然存在問題。關於那個的任何想法!? – Douglas 2012-07-28 23:27:29

相關問題