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工作。

C# Xamarin Visual Studios 使用不同类型的 UIView 来显示 UITextField.Inp

因此,事实证明,拾取器通常带有它们占用的预定义空间,而UITableViews则没有。 所以解决方案是这样的。 应该注意的是,在大小中,只有 y 值真正重要。

UITableView table = new UITableView(new CoreGraphics.CGRect(new CoreGraphics.CGPoint(0, 0), new CoreGraphics.CGSize(1, 100)));