我构建了一个iOS计算器并且我输入了一个十进制函数,每当我按下小数点按钮时都会插入一个小数,然后当我按下另一个数字时,小数就会消失。我不知道我是否需要在每个数字或者什么内容中输入代码。如果有人可以给我具体的指示,那将对我有所帮助。
这是.m
中的小数代码- (IBAction)Decimal:(id)sender
{
NSRange range = [self->Screen.text rangeOfString:@"."];
if (range.location ==NSNotFound){
self->Screen.text = [ self->Screen.text stringByAppendingString:@"."];
}
}
这里是.h
-(IBAction)Decimal:(id)sender;
这里的例子是数字按钮之一
-(IBAction)Number1:(id)sender{
SelectNumber = SelectNumber * 10;
SelectNumber = SelectNumber + 1;
Screen.text = [NSString stringWithFormat:@"%i", SelectNumber];
更新
我自己修复了一些错误,但我坚持这个错误。当我启动应用程序时,屏幕默认为零。每当我输入任何数字时,零应该被我选择的数字替换,但它不会被替换。我只是不确切地知道代码会指向哪个代码。
答案 0 :(得分:0)
问题是在数字方法中使用这种行:
Screen.text = [NSString stringWithFormat:@"%i", SelectNumber];
您正在设置Screen
的整体(我假设是一个文本字段或文本视图)以包含SelectNumber
,正如您在评论中所说,这是数字选择。因此,其他一切都将被覆盖。
只要您不允许用户在文本字段/视图的中间插入文本,您就可以使用Decimal:
中使用的相同逻辑来修正问题并附加{{ 1}}到最后。变化:
SelectNumber
为:
Screen.text = [NSString stringWithFormat:@"%i", SelectNumber];