2012-11-30 4 views
8

Ich lerne iPhone-Apps mit XCode 4.5.2 zu bauen und ich bemerkte etwas seltsames. Wie Sie unter der Adresse http://i.stack.imgur.com/purI8.jpg sehen können, wird der Text in einer der Schaltflächen nicht im iOS6-Simulator angezeigt. Ich habe auch versucht, die Enter-Taste in der gleichen Zeile von 0 und - zu bewegen, aber der Text in allen drei Tasten der Zeile verschwand. Weiß jemand, was die Ursache für dieses Problem ist und wie es gelöst werden kann? Hier ist der Code:Simulator zeigt keine Schaltfläche Text

#import "CalculatorViewController.h" 
#import "CalculatorBrain.h" 

@interface CalculatorViewController() 
@property (nonatomic) BOOL userIsInTheMiddleOfEnteringANumber; 
@property (nonatomic, strong) CalculatorBrain *brain; 
@end 

@implementation CalculatorViewController 

@synthesize display; 
@synthesize userIsInTheMiddleOfEnteringANumber; 
@synthesize brain = _brain; 

- (CalculatorBrain *)brain 
{ 
    if (!_brain) _brain = [[CalculatorBrain alloc] init]; 
    return _brain; 
} 

- (IBAction)digitPressed:(UIButton *)sender 
{  
    NSString *digit = [sender currentTitle]; 
    if (self.userIsInTheMiddleOfEnteringANumber) { 
     self.display.text = [self.display.text stringByAppendingString:digit]; 
    } else { 
     self.display.text = digit; 
     self.userIsInTheMiddleOfEnteringANumber = YES; 
    } 
} 

- (IBAction)enterPressed 
{ 
    [self.brain pushOperand:[self.display.text doubleValue]]; 
    self.userIsInTheMiddleOfEnteringANumber = NO; 
} 

- (IBAction)operationPressed:(UIButton *)sender 
{ 
    if (self.userIsInTheMiddleOfEnteringANumber) [self enterPressed]; 

    NSString *operation = [sender currentTitle]; 
    double result = [self.brain performOperation:operation]; 
    self.display.text = [NSString stringWithFormat:@"%g", result]; 
} 

@end 
+0

Können wir Ihren Code sehen? – Max

+0

Ja, ich habe es nicht gesagt, weil der Schaltflächentext nicht durch Code festgelegt ist, aber wenn Sie es brauchen, ist hier der Code der Ansicht. Die mit der Schaltfläche verbundene Aktion ist enterPressed. – Soel

+0

Ist Ihr Problem gelöst? – ichanduu

Antwort

0

Nach https://developer.apple.com/library/ios/documentation/uikit/reference/UIButton_Class/UIButton/UIButton.html#//apple_ref/doc/uid/TP40006815-CH3-SW7

- (void)setTitle:(NSString *)title forState:(UIControlState)state 

Ihre Schaltfläche Titel einzustellen.

So in Ihrem Fall:

- (IBAction)operationPressed:(UIButton *)sender{ 
    .... 
    [sender setTitle:[NSString stringWithFormat:@"%g", result] forState: UIControlStateNormal]; 

    // lets assume you want the down states as well: 
    [sender setTitle:[NSString stringWithFormat:@"%g", result] forState: UIControlStateSelected]; 
    [sender setTitle:[NSString stringWithFormat:@"%g", result] forState: UIControlStateHighlighted]; 

}