我有一个简单的身份验证表单,其中包含两个文本字段和一个登录按钮(布局:xbox) 当我编辑第一个文本字段时,此表单完全适合键盘和状态栏,但当我切换到第二个文本字段时,表单会向上滚动一点。
问题:有谁知道如何防止滚动发生?
[编辑]代码
app.views.UserLogin = function (config) {
Ext.apply(this, config);
this.loginField = new Ext.form.Text({
cls: 'auth-login',
width:"100%",
allowBlank: false,
placeHolder:'Identifiant',
border:'0 0 1 0',
});
this.passwordField = new Ext.form.Password({
cls: 'auth-password',
width:"100%",
allowBlank: false,
placeHolder:'Mot de passe',
border:'0',
});
this.loginBtn = new Ext.Button({
width:"200px",
text: "Connect",
handler: this.onLoginBtnFn,
scope: this,
cls:'auth-button',
});
this.authFieldSet = new Ext.form.FieldSet({
width:"90%",
cls:'auth-fieldset',
items:[this.loginField,this.passwordField]
});
//constructor
app.views.UserLogin.superclass.constructor.call(this, {
//dockedItems: [this.toolbar],
fullscreen: true,
cls:'auth',
layout: 'vbox',
items: [
this.authFieldSet,
this.loginBtn
]
});
};
谢谢
最佳答案
你能给我们更多信息吗? ScrollView 中的表单是否向上移动?可能设置 scrolling = NO;也许一些代码会有所帮助。
请注意,我在谈论 iOS 开发,我刚刚发布了您没有指定您是否在 objective-c 中工作。
让我稍微支持一下我的回答,这样更有意义。 View Controller 应该使用这些委托(delegate),您可能已经这样做了。
使用文本字段委托(delegate)允许访问 - (void)textFieldDidBeginEditing:(UITextField *)sender 和 - (void)textFieldDidEndEditing:(UITextField *)textField 方法。当文本字段开始编辑时,您可以设置 scrollingEnabled = NO,当文本字段结束编辑时,您可以设置 scrollingEnabled = YES。它看起来像这样:
-(void)textFieldDidBeginEditing:(UITextField *)sender
{
self.currentTextField = sender;
self.scrollView.scrollingEnabled = NO;
}
- (void)textFieldDidEndEditing:(UITextField *)textField
{
self.currentTextField = nil;
self.scrollView.scrollingEnabled = YES;
}
或
另一种选择是添加一个观察者,如果您使用 TextViews 而不是 TextFields(或两者的混合),这将很有用。
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:self.view.window];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:self.view.window];
}
- (void)viewWillDisappear:(BOOL)animated
{
[_currentTextField resignFirstResponder];
[super viewWillDisappear:animated];
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillShowNotification object:nil];
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillHideNotification object:nil];
}
你用这个技术做同样的事情,在 keyboardWillShow 方法中停止滚动,然后在 keyboardWillHide 方法中再次启动它。
希望我至少能帮上一点忙。
关于android - 单击文本字段时防止表单向上滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9344435/
我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h
我得到了一个包含嵌套链接的表单。编辑时链接字段为空的问题。这是我的表格:Editingkategori{:action=>'update',:id=>@konkurrancer.id})do|f|%>'Trackingurl',:style=>'width:500;'%>'Editkonkurrence'%>|我的konkurrencer模型:has_one:link我的链接模型:classLink我的konkurrancer编辑操作:defedit@konkurrancer=Konkurrancer.find(params[:id])@konkurrancer.link_attrib
我有一个表单,其中有很多字段取自数组(而不是模型或对象)。我如何验证这些字段的存在?solve_problem_pathdo|f|%>... 最佳答案 创建一个简单的类来包装请求参数并使用ActiveModel::Validations。#definedsomewhere,atthesimplest:require'ostruct'classSolvetrue#youcouldevencheckthesolutionwithavalidatorvalidatedoerrors.add(:base,"WRONG!!!")unlesss
我想向我的Controller传递一个参数,它是一个简单的复选框,但我不知道如何在模型的form_for中引入它,这是我的观点:{:id=>'go_finance'}do|f|%>Transferirde:para:Entrada:"input",:placeholder=>"Quantofoiganho?"%>Saída:"output",:placeholder=>"Quantofoigasto?"%>Nota:我想做一个额外的复选框,但我该怎么做,模型中没有一个对象,而是一个要检查的对象,以便在Controller中创建一个ifelse,如果没有检查,请帮助我,非常感谢,谢谢
当我在Rails控制台中按向上或向左箭头时,出现此错误:irb(main):001:0>/Users/me/.rvm/gems/ruby-2.0.0-p247/gems/rb-readline-0.4.2/lib/rbreadline.rb:4269:in`blockin_rl_dispatch_subseq':invalidbytesequenceinUTF-8(ArgumentError)我使用rvm来管理我的ruby安装。我正在使用=>ruby-2.0.0-p247[x86_64]我使用bundle来管理我的gem,并且我有rb-readline(0.4.2)(人们推荐的最少
我有一个服务模型/表及其注册表。在表单中,我几乎拥有服务的所有字段,但我想在验证服务对象之前自动设置其中一些值。示例:--服务Controller#创建Action:defcreate@service=Service.new@service_form=ServiceFormObject.new(@service)@service_form.validate(params[:service_form_object])and@service_form.saverespond_with(@service_form,location:admin_services_path)end在验证@ser
我知道我可以指定某些字段来使用pluck查询数据库。ids=Item.where('due_at但是我想知道,是否有一种方法可以指定我想避免从数据库查询的某些字段。某种反拔?posts=Post.where(published:true).do_not_lookup(:enormous_field) 最佳答案 Model#attribute_names应该返回列/属性数组。您可以排除其中一些并传递给pluck或select方法。像这样:posts=Post.where(published:true).select(Post.attr
最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路
我几天前在我的rubyonrails2.3.2上安装了Sphinx和Thinking-Sphinx,基本搜索效果很好。这意味着,没有任何条件。现在,我想用一些条件过滤搜索。我有公告模型,索引如下所示:define_indexdoindexestitle,:as=>:title,:sortable=>trueindexesdescription,:as=>:description,:sortable=>trueend也许我错了,但我注意到只有当我将:sortable=>true语法添加到这些属性时,我才能将它们用作搜索条件。否则它找不到任何东西。现在,我还在使用acts_as_tag
假设您编写了一个类Sup,我决定将其扩展为SubSup。我不仅需要了解你发布的接口(interface),还需要了解你的私有(private)字段。见证这次失败:classSupdefinitialize@privateField="fromsup"enddefgetXreturn@privateFieldendendclassSub问题是,解决这个问题的正确方法是什么?看起来子类应该能够使用它想要的任何字段而不会弄乱父类(superclass)。编辑:equivalentexampleinJava返回"fromSup",这也是它应该产生的答案。 最佳答案