在 Xamarin Forms 中,当我使用以下代码时:
public SomePage()
{
InitializeComponent();
someEntry.Focus();
}
默认情况下,代码条目没有焦点,但是,如果我使用以下代码:
protected override void OnAppearing()
{
base.OnAppearing();
someEntry.Focus();
}
它根据需要工作(重点输入)。这是为什么?在 InitializeComponent()
调用之后,codeEntry 是否已经存在并位于它的位置,功能齐全?我的意思是,我确实可以从页面构造函数更改 Text
属性。
最佳答案
在 Xamarin 中,每个控件都有等效的 View 渲染器,即 native UI 元素,只有在将控件添加到 native 元素层次结构时才会创建。在构造函数中,尚未创建条目的 native 元素。然而,在 OnAppering 中,entry 对应的原生元素被创建,因此它可以获得焦点。
此外,这似乎是一个错误,因为 Xamarin 正在存储状态并在创建 native UI 元素时应用它。是时候提交错误了!!!
关于xamarin - 为什么条目的 Focus() 方法在页面的构造函数中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38240733/