button - 模拟器不显示按钮文本

标签 button ios6 ios-simulator xcode4.5

我正在学习使用 XCode 4.5.2 构建 iPhone 应用程序,我注意到一些奇怪的事情。正如您在地址 http://i.stack.imgur.com/purI8.jpg 上看到的那样iOS6 模拟器中不显示其中一个按钮内的文本。我还尝试在 0 和 - 的同一行中移动 Enter 按钮,但是该行的所有三个按钮中的文本都消失了。任何人都知道这个问题的原因是什么以及如何解决它?这是代码:

#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

最佳答案

根据 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

设置按钮标题。

所以在你的情况下:
- (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];

}

关于button - 模拟器不显示按钮文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13647764/

相关文章:

events - 重复 requestAccessToEntityType :EKEntityTypeEvent during development 的过程

ios - 目前无法在 Xcode 模拟器中安装此应用

java - 如何: Organize Buttons and stuff with JavaFX

jquery - 事件和其他东西一般不起作用

objective-c - iOS 5 和 iOS 6 上的奇怪崩溃问题

ios - UIPageControl + UI外观

linux - 用于在 linux 或 window 中进行 Web 开发的 Iphone 模拟器

iOS 模拟器不使用与 OS X 相同的布局

ios - 从可变数组或字典中设置按钮标题和操作?

java - Java 中的任何操作都需要按两次按钮