2013-10-15 35 views
4

在我的應用程序中,我有3個UITextFields和一個UITextView。對於他們兩人來說,我的鍵盤都會出現,但是我不能讓它消失。我在Stack Overflow中查找了一些方法,但似乎無法以正確的方式實現它們。有人會在意我的下列代碼行嗎?鍵盤不會在應用程序中解僱

ViewController.h

@interface ViewController : UIViewController <UITextViewDelegate> 

@property (strong, nonatomic) NSString *dna; 
@property (weak, nonatomic) IBOutlet UITextField *dnaOut; 
@property (weak, nonatomic) IBOutlet UITextField *mrnaOut; 
@property (weak, nonatomic) IBOutlet UITextField *trnaOut; 
@property (weak, nonatomic) IBOutlet UITextView *aminoOut; 
- (IBAction)translateButton:(UIButton *)sender; 
- (IBAction)clearButton:(UIButton *)sender; 
@property (weak, nonatomic) IBOutlet UILabel *dnaError; 
@property (weak, nonatomic) IBOutlet UILabel *mrnaError; 
@property (weak, nonatomic) IBOutlet UILabel *trnaError; 
@property (weak, nonatomic) IBOutlet UISegmentedControl *inputType; 



@end 

ViewController.m

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 

    _aminoOut.delegate = self; 


    -(BOOL) _aminoOut textFieldShouldReturn:(UITextField *)textfield { 
     [textField resignFirstResponder]; 
     return YES; 
    } 


    - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range 
replacementText:(NSString *)text 
    { 

     if ([text isEqualToString:@"\n"]) { 

      [textView resignFirstResponder]; 
      // Return FALSE so that the final '\n' character doesn't get added 
      return NO; 
     } 
     // For any other character return TRUE so that the text gets added to the view 
     return YES; 
    } 

} 
+0

已經設置您的UITextFields的代表? – Kevin

回答

4

爲什麼您的viewDidLoad方法中的所有代碼都是?它應該是:

.h文件中:

@interface ViewController : UIViewController <UITextViewDelegate, UITextFieldDelegate> 

// Other stuff here... 

.m文件:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 

    self.dnaOut.delegate = self; 
    self.mrnaOut.delegate = self; 
    self.trnaOut.delegate = self; 
    self.aminoOut.delegate = self; 

} 

- (BOOL)textFieldShouldReturn:(UITextField *)textfield { 
    [textField resignFirstResponder]; 
    return YES; 
} 

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text 
{ 
    if ([text isEqualToString:@"\n"]) { 

     [textView resignFirstResponder]; 
     // Return FALSE so that the final '\n' character doesn't get added 
     return NO; 
    } 
    // For any other character return TRUE so that the text gets added to the view 
    return YES; 
} 
0

我想你忘記的UITextField的委託連接到文件的所有者。

+0

我該怎麼做? – MacBoss123541

+1

右鍵單擊您的界面生成器中的UITextField,您會看到「委託」和一個圓的權利,將該圓圈拖到文件所有者。 – ayon

相關問題