C# Xamarin Visual Studios 使用不同类型的 UIView 来显示 UITextField.Inp
本文关键字:UIView 显示 Inp UITextField 同类型 Visual Xamarin Studios | 更新日期: 2023-09-27 17:55:55
所以我已经能够获得UIPickerView来处理这段代码。 当我单击文本字段时,我能够在选择器中看到文件。
-filesInPath 来自 Dropbox 连接。
-AddClassDropboxPathTextBox 是一个文本字段。
public override void ViewDidLoad(){
base.ViewDidLoad();
setupFilePicker();
}
public void setupFilePicker(){
PickerModelmodel = new PickerModel(filesInPath);
UIPickerView picker = new UIPickerView();
picker.Model = model;
UIToolbar pickerToolbar = new UIToolbar();
pickerToolbar.BarStyle = UIBarStyle.Black;
pickerToolbar.Translucent = true;
pickerToolbar.SizeToFit();
UIBarButtonItem doneButton = new UIBarButtonItem("Choose", UIBarButtonItemStyle.Done, (s, e) => {
AddClassDropboxPathTextBox.ResignFirstResponder();
});
pickerToolbar.SetItems(new UIBarButtonItem[] { doneButton }, true);
AddClassDropboxPathTextBox.InputView = picker;
AddClassDropboxPathTextBox.InputAccessoryView = pickerToolbar;
}
public class PickerModel : UIPickerViewModel
{
public List<string> Items { get; private set; }
public Int32 SelectedIndex { get; set; }
public PickerModelSource(List<String> items)
{
SelectedIndex = 0;
tems = items;
}
}
我的问题是我不想使用选择器。 我想使用 UITableView,这样我就可以允许用户搜索他们的 Dropbox 文件结构。 我试图用UITableViewSource替换UIPickerViewModel。 当我单击文本字段时,仅显示工具栏,并且没有收到任何错误。
TableViewSource source = new PTableViewSource(filesInPath);
UITableView picker = new UITableView();
picker.Source = source;
我希望有人可以帮助我找到一种方法来让UITableView而不是UIPickerView工作。
因此,事实证明,拾取器通常带有它们占用的预定义空间,而UITableViews则没有。 所以解决方案是这样的。 应该注意的是,在大小中,只有 y 值真正重要。
UITableView table = new UITableView(new CoreGraphics.CGRect(new CoreGraphics.CGPoint(0, 0), new CoreGraphics.CGSize(1, 100)));