Swift 不使用becomeFirstResponder()将焦点设置为UITextField

Swift 不使用becomeFirstResponder()将焦点设置为UITextField,swift,xcode,Swift,Xcode,是否有任何方法可以在默认情况下选择UITextField,而不使用becomeFirstResponder()。方法becomeFirstResponder()自动滚动我的UIScrollView,以便UITextField位于页面顶部,这是我不想要的 谢谢。在调用becomeFirstResponder之前,您可以尝试禁用scrollview的滚动,然后重新启用它: scrollView.scrollEnabled = NO; [textField becomeFirstResponder];

是否有任何方法可以在默认情况下选择
UITextField
,而不使用
becomeFirstResponder()
。方法
becomeFirstResponder()
自动滚动我的
UIScrollView
,以便
UITextField
位于页面顶部,这是我不想要的


谢谢。

在调用becomeFirstResponder之前,您可以尝试禁用scrollview的滚动,然后重新启用它:

scrollView.scrollEnabled = NO;
[textField becomeFirstResponder];
scrollView.scrollEnabled = YES;

但是,请注意不要使用这种滚动行为,因为在较小的屏幕上显示文本字段可能会很有用。

您可以在调用becomeFirstResponder之前尝试禁用滚动视图,然后重新启用:

scrollView.scrollEnabled = NO;
[textField becomeFirstResponder];
scrollView.scrollEnabled = YES;

但是,请注意不要使用这种滚动行为,因为在较小的屏幕上显示文本字段可能会很有用。

如果确实要强制使用,可以设置0秒的计时器再次启用。此“hack”确保在绘制后调用它。在调用
becomeFirstResponder
之前,您是否可以尝试将
scrollView.contentOffset
保存在变量中,然后再将其还原:
scrollView.contentOffset=…
如果确实要强制执行此操作,可以设置0秒的计时器以再次启用它。此“hack”确保在绘制后调用它。在调用
becomeFirstResponder
之前,您是否可以尝试将
scrollView.contentOffset
保存在变量中,然后再将其还原:
scrollView.contentOffset=…