- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我可以从选择器获取一个文本框值到一个文本框。如何为更多文本框获取不同的值。目前,即使我只填写一个文本框并且只显示第一个 NSArray 中的值,所有文本字段都会被填充。我尝试了 if 语句,Apple 文档没有太大帮助。
我不知道标记是如何工作的,但注意到在研究这个问题时提到了它。如果我没有正确解释这一点,我很抱歉,如果我没有充分解释它,可以下载一个测试应用程序来更好地解释它
.h
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController <UIPickerViewDataSource, UIPickerViewDelegate,UITextFieldDelegate>
{
//decalre picker
UIPickerView *select;
//declare NSArrray
NSArray *arrStatus;
NSArray *arrStatus2;
}
@property (strong, nonatomic) IBOutlet UITextField *text1;
- (IBAction)Value:(id)sender;
@property (strong, nonatomic) IBOutlet UITextField *text2;
@end
.m
- (void)viewDidLoad
{
///create picker//////////////////////////////////////////////////////////////////////////
select = [[UIPickerView alloc] initWithFrame:CGRectZero];
select.delegate = self;
select.dataSource = self;
[select setShowsSelectionIndicator:YES];
text1.inputView = select;
text2.inputView = select;
////arrays & objects
arrStatus = [[NSArray alloc] initWithObjects:@"1",@"2",@"3",@"4",nil];
arrStatus2 = [[NSArray alloc] initWithObjects:@"A",@"B",@"C",@"D",nil];
//number of colums and rows etc of picker
}
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
//One column
return 1;
}
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent: (NSInteger)component
{
//set number of rows
return arrStatus.count;
return arrStatus2.count;
}
-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
//set item per row
return [arrStatus objectAtIndex:row];
return [arrStatus2 objectAtIndex:row];
- (IBAction)Value:(id)sender {
///get picker values to text field
NSInteger selectedRow = [select selectedRowInComponent:0];
text1.text = [arrStatus objectAtIndex: selectedRow];
[text1 resignFirstResponder];
text2.text = [arrStatus2 objectAtIndex: selectedRow];
[text2 resignFirstResponder];
}
@end
最佳答案
在 didselectrow 的方法中,我让 if 语句查看哪个文本字段是第一响应者。然后使用下面的代码。它将 uipicker 值放置在每个文本字段中。
-(void) pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
if ([_input1 isFirstResponder])
{
NSString *resultString1 = [[NSString alloc] initWithFormat:[gradeArray objectAtIndex:[pickerView selectedRowInComponent:0]]];
NSString *resultString2 = [[NSString alloc] initWithFormat:[plusMinusArray objectAtIndex:[pickerView selectedRowInComponent:1]]];
NSString *gradeResult = [resultString1 stringByAppendingString:resultString2];
_input1.text = gradeResult;
}else if ([_input2 isFirstResponder])
{
NSString *resultString1 = [[NSString alloc] initWithFormat:[gradeArray objectAtIndex:[pickerView selectedRowInComponent:0]]];
NSString *resultString2 = [[NSString alloc] initWithFormat:[plusMinusArray objectAtIndex:[pickerView selectedRowInComponent:1]]];
NSString *gradeResult = [resultString1 stringByAppendingString:resultString2];
_input2.text = gradeResult;
}else if ([_inputM isFirstResponder])
{
NSString *resultString1 = [[NSString alloc] initWithFormat:[gradeArray objectAtIndex:[pickerView selectedRowInComponent:0]]];
NSString *resultString2 = [[NSString alloc] initWithFormat:[plusMinusArray objectAtIndex:[pickerView selectedRowInComponent:1]]];
NSString *gradeResult = [resultString1 stringByAppendingString:resultString2];
_inputM.text = gradeResult;
}else if ([_input3 isFirstResponder])
{
NSString *resultString1 = [[NSString alloc] initWithFormat:[gradeArray objectAtIndex:[pickerView selectedRowInComponent:0]]];
NSString *resultString2 = [[NSString alloc] initWithFormat:[plusMinusArray objectAtIndex:[pickerView selectedRowInComponent:1]]];
NSString *gradeResult = [resultString1 stringByAppendingString:resultString2];
_input3.text = gradeResult;
}else if ([_input4 isFirstResponder])
{
NSString *resultString1 = [[NSString alloc] initWithFormat:[gradeArray objectAtIndex:[pickerView selectedRowInComponent:0]]];
NSString *resultString2 = [[NSString alloc] initWithFormat:[plusMinusArray objectAtIndex:[pickerView selectedRowInComponent:1]]];
NSString *gradeResult = [resultString1 stringByAppendingString:resultString2];
_input4.text = gradeResult;
}
}
希望这对您有所帮助。
编辑
如果你想在选择器中获取两个数组,你需要将列设置为2。这将显示两个数组。我使用以下代码在选择器 View 中显示我的两个数组。
-(NSInteger) numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
return 2;
}
-(NSInteger) pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
if (component == 0)
{
return [gradeArray count];
}
return [plusMinusArray count];
}
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
if (component == 0)
{
return [gradeArray objectAtIndex:row];
}
return [plusMinusArray objectAtIndex:row];
}
关于objective-c - 如何将 UIPicker 与多个文本字段一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11720159/
有没有办法为 UIPicker 设置默认位置?我的意思是,如果用户可以在 UIPicker 中选择 1 到 100 之间的任何数字,我可以将其设置为自动从 50 开始吗? 最佳答案 您可以像这样使
我有一个UIPickerView,并且点击所选行时不会调用didSelectRow方法。我需要处理这个案子。有什么想法吗? 最佳答案 首先,使类符合 UIGestureRecognizerDelega
SLOT-MACHINE 应用程序还有其他方法吗?这是因为 UIPICKER 方法没有缓慢的动画效果。 最佳答案 这可以使用 CALayer 来完成。动画片。 您的主 slotMachineView
我是 Xcode/Swift 新手,正在处理一项需要帮助的作业。我有一个简单的程序,启动时会显示名称列表。我想从 UITextField 中获取一个新名称,并将其添加到当前所选项目之后的选择器数据中。
我已经对此进行了研究,但只发现了如何将键盘切换为键盘。现在我有一个 UIPicker,它会在点击文本字段时出现。在选择器中有三个选项,第三个是自定义。 What I want to happen is
我想使用我的 uipicker 来初始化十六进制数字的 5 个字符字符串表示形式。所以换句话说,我需要 uipicker 的每个组件显示 0-9、A-F 剂量,有人知道如何做到这一点或者是否可能吗?
我想做一些类似键盘显示/隐藏的事情,所以我想将选择器设置为第一响应者。这可能吗。如果不是,我如何通过单击按钮在 View 中显示/隐藏 UIPicker。在其他主题上,我如何格式化 DatePicke
我一直在开发这个应用程序,它有 3 个 uipickers。我想在每个 uipicker 中实现图像。然而,如下图所示,它只影响一个 uipicker,而不是全部。我想知道如何能够自定义图像 中显示的
我有一个带有 5 个静态单元格的 TableView Controller ,其中一个像这样调用 UIPicker: #pragma mark PickerView DataSource - (NSI
我有一个以编程方式制作的 UIPickerView,但我在界面生成器中制作的所有内容和选择器在我运行该应用程序后都不会显示。在我在 IB 中制作背景(这是一个 UIImage)之前,它起作用了。其他一
我有一个包含两个组件的 UIPicker。第二个组件中的值根据第一个组件选择而变化。 但是,如果我以编程方式设置第一个组件的值,则第二个组件不会更新。 此代码包含在 viewDidLoad() 中:
我有一个 UIPicker,我想保存选择并在选择后隐藏它。我找不到办法做到这一点。我可以在没有“保存”按钮的情况下执行此操作吗?我可以只保存按行的选择吗?目前我按下一个按钮使选择器出现 (picker
我在实现 UIPicker 时遇到了一些问题。当我查看它时,有些行显示为白色/透明。稍微滚动并返回后,该行终于出现了。 截图如下: 第一行保持白色 在第二行上滚动也是如此 行在完全滚动并返回后最终出现
我正在讨论几种模拟“价格合适”类型轮或样式 UIPicker 功能的方法。也就是说,我不需要 UIPicker 插件的整个对话框和配色方案。我只需要能够通过几个图像制作动画来复制轮子的旋转。 举个例子
我有以下问题:我可以更改 uipicker 中各行的文本颜色,但不能更改我想要的特定行的文本颜色,选择器变得很困惑,很多文本标签变成蓝色。 - (UIView *)pickerView:(UIPick
我一直在四处寻找,但无法弄清楚我该如何做以下事情。我有一个 UIPickerView(如图所示)我已经修改以允许我从中选择分钟和秒,但我还想添加像 CountDownTimer UIPickerVie
如何加载带有元组数组的 UIPickerView? 使用以下代码,我只能在 UIPickerView 中看到 Oregon: 9.0。 let myArrayTuple: [(String, Doub
嗨, 我在 View 上添加了 uipicker。我在不同的文本框上显示的 View 开始编辑事件。我想在不同的文本框编辑事件上从不同的数据源填充 uipicker。所以我想刷新或重新加载 uipic
我正在尝试开发一个具有横向模式 UIPicker 的应用程序,占据(几乎)屏幕的整个宽度(具有 5 或 6 个组件)。你能告诉我如何设置 UIPicker 的大小吗?非常感谢您的帮助。 最佳答案 实际
假设我的问题是我希望用户能够通过一个控件选择一定数量的苹果和一定数量的梨。我在与 iOS 捆绑在一起的时钟应用程序的“计时器”部分中看到了选择器,我喜欢它。 我正是想要这个,除了不是三列,我想要两列,
我是一名优秀的程序员,十分优秀!