如果您想了解如何在没有sender变量的情况下在Xcode12.4中使用Swift5.1禁用按钮?的知识,那么本篇文章将是您的不二之选。同时我们将深入剖析(senderasTButton).some和
如果您想了解如何在没有 sender 变量的情况下在 Xcode 12.4 中使用 Swift 5.1 禁用按钮?的知识,那么本篇文章将是您的不二之选。同时我们将深入剖析(sender as TButton).some 和 TButton(sender).some 的区别是什么?、Android:无法使用 ObservableBoolean 启用/禁用按钮、Angular - 禁用按钮、ASP.NET MVC 禁用按钮的各个方面,并给出实际的案例分析,希望能帮助到您!
本文目录一览:- 如何在没有 sender 变量的情况下在 Xcode 12.4 中使用 Swift 5.1 禁用按钮?
- (sender as TButton).some 和 TButton(sender).some 的区别是什么?
- Android:无法使用 ObservableBoolean 启用/禁用按钮
- Angular - 禁用按钮
- ASP.NET MVC 禁用按钮
如何在没有 sender 变量的情况下在 Xcode 12.4 中使用 Swift 5.1 禁用按钮?
如何解决如何在没有 sender 变量的情况下在 Xcode 12.4 中使用 Swift 5.1 禁用按钮?
我正在尝试在 Xcode 中使用 Swift 禁用按钮。我知道如何使用 sender 变量禁用按钮,但我还没有找到一种方法来禁用没有 sender 变量的按钮。我无法使用 sender 变量,因为我没有证据表明用户会实际点击按钮。
我尝试使用 IBOutlet 将我的 UIButton 连接到我的代码:
@IBOutlet weak var button: UIButton!
然后像这样访问它的属性:
button.enabled = false
我也试过
button.userInteractionEnabled = false
解决方法
确保您的插座已连接。您可以通过转到故事板,然后打开插座连接面板来检查。
结果:
作为旁注,您应该执行 button.isEnabled = false
,而不是 button.enabled = false
。
(sender as TButton).some 和 TButton(sender).some 的区别是什么?
(sender as TButton).some 和 TButton(sender).some 的区别是什么?
(Sender as TButton) 与 TButton(Sender) 都是 Typecasting,只是语法不同
罢了, 因此, 写成 (Sender as TButton).Caption := ''Test'';或者
TButton(Sender).Caption := ''Test'';
结果都一样
针对个别物件个别事件写事件处理程序, 并不需判定 Sender为何, 因为很明
显的 Sender便是这个正在撰写的物件, 但是在多个物件共用一个事件处理程序的情况下,Sender 是谁(谁发生OnClick事件)的判断就有其必要性
if Sender = Button1 的写法是直接判定Sender是不是 Button1这个物件, 但是如果按钮有 64 个, 写 64 个 if叙述恐怕会累死人的...
因此, 以类别的判定取代个别物件的副本(instance)的判定, 应是比较简明的
作法, 於是, 我们可以写成 Sender is TButton, 为真时, 以上述型别转换的方式 --- TButton(Sender).XXXX 撰写, 就可以大辐简化程式,
毕竟,同属 TButton 的物件, 都有相同的属性(属性值不一定相同), 不是吗?
值得注意的是, Sender is (Class Name) 的 Class Name 判断是会牵涉到父阶的继承关系的, 例如: Button1 是Button,Button2是 TBitBtn, 这样的话:Button1 is TButton 为真, Button2 is TButton 也是真, 因为TBitBtn 继承自TButton, 也就是说, 球是球, 篮球也是球. 应用这个观念, 下列的程式:
if ActiveControl is TDBEdit then
(ActiveControl as TDBEdit).CutToClipboard
else
if ActiveControl is TDBMemo then
(ActiveControl as TDBMemo).CutToClipboard;
如果改成:
if ActiveControl is TCustomMemo then
TCustomMemo(ActiveControl).CutToClipboard;
程序的执行效率就更好了, 因为 TDbEdit 与 TDbMemo 的共同父阶是
TCustomMemo, 而 TCustomMemo
也有 CutToClipboard 方法
有没有试一下我的例子,就知道了。
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TA = class
public
procedure Test;
end;
TB = class(TA)
public
procedure Test;
procedure Test1;
procedure Test2;
end;
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TA.Test;
begin
Showmessage(''Call TA.test'');
end;
procedure TB.Test;
begin
Showmessage(''Call TB.test'');
end;
procedure TB.Test1;
begin
(self as TA).test;
end;
procedure TB.Test2;
begin
TA(self).test;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
with TB.Createdo
begin
test1;
free;
end;
{
with TB.Createdo
begin
test2;
free;
end;
}
end;
end.
www:
如果sender 与 TButton 没有关系,编译照样不通过。
Android:无法使用 ObservableBoolean 启用/禁用按钮
如何解决Android:无法使用 ObservableBoolean 启用/禁用按钮
以下 Observable 变量在 viewmodel 中
var isEmailValid = ObservableBoolean(false)
var isPasswordValid = ObservableBoolean(false)
并在某些条件下在 viewmodel 中设置值
fun validateUserInputs(email: Boolean,password: Boolean){
isEmailValid.set(email)
isPasswordValid.set(password)
}
最后,从 XML 布局访问如下:
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<data>
<variable
name="viewmodel"
type="com.packageName.folder.viewmodel" />
</data>
...
<com.google.android.material.button.MaterialButton
android:id="@+id/btnSubmit"
android:text="@string/sign_in"
android:enabled="@{viewmodel.isEmailValid && viewmodel.isPasswordValid? true: false}" />
...
</layout>
当两个 Observables 都设置为 true 时,按钮未启用。
也尝试了 viewmodel.isEmailValid()
和 viewmodel.isEmailValid()==true
选项。
--
在绑定 XMl 中访问上述变量的正确方法是什么?
解决方法
我得到了答案。
binding.viewModel = viewModel
在 Activity 的 onCreate() 中丢失。
那么,下面就是Databinding与ViewModel的完成。
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = DataBindingUtil.setContentView(this,R.layout.activity_abc)
binding.viewModel = viewModel
binding.lifecycleOwner = this
...
}
Angular - 禁用按钮
如何解决Angular - 禁用按钮?
<div id="home-container">
<div>
<button mat-raised-button [disabled]="true">This is a button</button>
</div>
<div>
<ac-map></ac-map>
</div>
</div>
环境:
- 角度 10
- Chrome/Firefox(隐身模式)
大家好,
我在显示我的 angular 项目时遇到了一些不良行为。上面的示例显示了一个带有默认禁用按钮的简单组件(我使用“true”作为变量的占位符)。当我加载组件时,按钮应该被禁用。然而。加载组件后,按钮在前一两秒内启用,然后被禁用 - 使其看起来杂乱无章。我怎样才能避免这种情况?
亲切的问候, 斯科特。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
ASP.NET MVC 禁用按钮
如何解决ASP.NET MVC 禁用按钮
我有一个 .cshtml
视图,它有一个按钮和一个作为日期选择器的文本框。如果文本框为空,如何使用 id = "submitButton"
禁用按钮?谢谢
<input id="submitButton" type="submit" value="blah" disabled="@ViewBag.blah"
class="btn btn-default" />
@Html.Label("my label:")
@Html.TextBox("Closed","",new { @})
解决方法
您可以通过多种不同的方式来实现,最简单的是使用 javascript:
$(".datepicker").change(function() {
if ($(".datepicker").val())
$("#submitButton").removeAttr("disabled");
else
$("#submitButton").attr("disabled","disabled");
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="submitButton" type="submit" value="blah"
class="btn btn-default" />
<input type="text" class="datepicker">
今天关于如何在没有 sender 变量的情况下在 Xcode 12.4 中使用 Swift 5.1 禁用按钮?的介绍到此结束,谢谢您的阅读,有关(sender as TButton).some 和 TButton(sender).some 的区别是什么?、Android:无法使用 ObservableBoolean 启用/禁用按钮、Angular - 禁用按钮、ASP.NET MVC 禁用按钮等更多相关知识的信息可以在本站进行查询。
本文标签: