Mic*_*ael 8 objective-c uitextfield ipad ios
我的代码:
- (void)viewDidLoad {
[super viewDidLoad];
CGRect rectFake = CGRectZero;
UITextField *fakeField = [[UITextField alloc] initWithFrame:rectFake];
[self.view addSubview:fakeField];
UIView *av = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 0.0, 39.0)];
av.backgroundColor = [UIColor darkGrayColor];
CGRect rect = CGRectMake(200.0, 4.0, 400.0, 31.0);
UITextField *textField = [[UITextField alloc] initWithFrame:rect];
textField.borderStyle = UITextBorderStyleRoundedRect;
textField.font = [UIFont systemFontOfSize:24.0];
textField.delegate = self;
[av addSubview:textField];
fakeField.inputAccessoryView = av;
[fakeField becomeFirstResponder];
}
Run Code Online (Sandbox Code Playgroud)
我试着补充一下
[textField becomeFirstResponder]
Run Code Online (Sandbox Code Playgroud)
最后,但它没有用.
在按下ENTER时委托方法隐藏键盘的另一个问题也不起作用.
- (BOOL) textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
return YES;
}
Run Code Online (Sandbox Code Playgroud)
Tom*_*Tom 15
我面临同样的挑战.您(和我的初始)方法可能不起作用,因为该文本字段inputAccessoryView拒绝成为第一响应者,因为它UITextField最初不在您的屏幕上.
我的解决方案:检查键盘(以及配件视图)出现的时间!
步骤1)监听通知(确保在您想要接收通知之前执行此代码).
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(changeFirstResponder)
name:UIKeyboardDidShowNotification
object:nil];
Run Code Online (Sandbox Code Playgroud)
步骤2)当键盘出现时,您可以将您的文本字段设置为inputAccessoryView第一响应者:
-(void)changeFirstResponder
{
[textField becomeFirstResponder]; // will return YES;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9877 次 |
| 最近记录: |