我刚开始学习使用MonoTouch为iPad开发应用程序(主要是).也许是因为我在C#世界的多年经验,它使我的转换非常困难,有时我觉得很愚蠢.在C#中这是非常简单的事情,但它让我抓狂了...
弹出对话框?
对于iPhone,你很少有这个要求,因为无论你展示什么都会占据整个屏幕,所以你只需为每个弹出窗口创建一个控制器.
对于iPad,我有更多的空间,我不希望整个屏幕占用一些控件(例如登录屏幕).这就是我想把它作为弹出窗口显示的原因.我在其他iPad应用程序中看到了这一点.
根据我的学习,我需要使用UIAlertView或UIActionSheet来完成这项工作.但我不明白的是,正如我读过的所有例子所示,你必须从代码中创建所有控件.
我想要做的是使用IB创建UI,并将其插入UIActionSheet.可能吗?我该怎么做?
我想单击一个按钮以在组件中打开文件夹对话框。这是我正在尝试做的事情:
HTML:
<div>
<input class="u-full-width" placeholder="Folder" type="text" [(ngModel)]="folder">
<button id="browse" class="button-primary" (click)="browse()">Browse</button>
<input id="fileInput" type="file" style="display: none" />
</div>
Run Code Online (Sandbox Code Playgroud)
component.ts
// var remote = require('remote');
// var dialog = remote.require('dialog');
folder: string;
browse() {
dialog.showOpenDialog({title: 'Select a folder', properties: ['openDirectory']}, (folderPath) => {
if (folderPath === undefined){
console.log("You didn't select a folder");
return;
}
this.folder = folderPath;
});
}
Run Code Online (Sandbox Code Playgroud)
那么,如何导入遥控器和对话框?
我在网上找到了WPF DataGrid的一些样式,所有这些样式都用于预发布的DataGrid.现在,我正在使用.NET4 DataGrid,我得到一个编译错误抱怨DataGridHeaderBorder无法找到.基于Microsoft,它位于Microsoft.Windows.Themes命名空间中.无论我尝试什么,我都无法使它发挥作用.
我想让tabControl更智能一些,以节省一些屏幕空间:如果只有一个选项卡,则不显示选项卡标题,如果有两个或更多选项卡,则显示选项卡标题.
我知道您可以完全隐藏选项卡标题,如何如何创建没有标签标题的TabControl?.这种方法的问题是,一旦隐藏,我就无法再显示标签页眉.还是我错过了什么?
我正在尝试在 chrome 扩展中调用 REST API。我设法使 fetch GET 工作,但无法使 POST 工作。服务器端的主体始终为空。这是我的提取请求:
let url = "http://localhost:3000/api/save/one"
fetch(url, { method: "POST", headers: { "Accept": "application/json", "Content-Type": "application/json; charset=utf-8" }, mode: "no-cors", body: JSON.stringify(json) })
.then(resp => console.log(resp))
Run Code Online (Sandbox Code Playgroud)
当我检查服务器上的请求时,我确实注意到服务器上的内容类型始终是“text/plain;charset=UTF-8”。所以,我的标题似乎没有被忽略。但是,“接受”标题确实通过了。
这是服务器上的标头:
accept:"application/json"
accept-encoding:"gzip, deflate, br"
accept-language:"en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7"
cache-control:"no-cache"
connection:"close"
content-length:"306"
content-type:"text/plain;charset=UTF-8"
Run Code Online (Sandbox Code Playgroud)
如果我从我的提取标头中删除“接受”,我会在服务器上得到这个:
accept:"*/*"
accept-encoding:"gzip, deflate, br"
accept-language:"en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7"
cache-control:"no-cache"
connection:"close"
content-length:"306"
content-type:"text/plain;charset=UTF-8"
Run Code Online (Sandbox Code Playgroud)
对此有何解释?那么,如何使 POST 工作呢?
我需要根据相对较大的列表中的用户输入进行文本搜索(每行大约37K行,每行50到100个字符).输入每个字符后进行搜索,结果显示在a中UITableView
.这是我目前的代码:
if (input.Any(x => Char.IsUpper(x)))
return _list.Where(x => x.Desc.Contains(input));
else
return _list.Where(x => x.Desc.ToLower().Contains(input));
Run Code Online (Sandbox Code Playgroud)
它在运行模拟器的MacBook上运行良好,但在iPad上运行速度太慢.
我观察到有趣的事情是,随着输入的增长,它需要更长更长的时间.例如,说"examin"作为输入.进入e后约1秒,x后2秒,a后5秒,但m后28秒,依此类推.为什么?
我希望有一种简单的方法来改进它.
在使用带有JSON的angular,node和mongodb的web项目中,JSON序列化程序本身不支持date.没有针对此问题的解决方法,如图所示这里.但是,我想知道将日期保存为日期对象而不是MongoDB中的字符串有什么好处?我对这个项目并不是那么远,所以我看不出差别.
我知道有几种方法可以做到这一点,但我想让它变得更容易,因为我有很多组合框以这种方式绑定.有使用ObjectDataProvider的建议在这里.问题是我必须为每个枚举创建一个资源条目,这很多.到目前为止,我一直在使用代码隐藏方式,因为它更短:
cmb.ItemsSource = Enum.GetValues(typeof(MyTypes));
Run Code Online (Sandbox Code Playgroud)
我想知道是否可以在Xaml中生成等效项.我以为我们可以使用转换器归档这个.我们可以将类型转换为数组,然后将数组绑定到组合框'ItemsSource.但我一直坚持如何指定转换器的枚举.这是我的代码:
我的枚举:
public enum MyTypes { Type1, Type2, Type3 };
Run Code Online (Sandbox Code Playgroud)
这是我的转换器:
public class EnumToArrayConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return Enum.GetValues(value.GetType());
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return null; // I don't care about this
}
}
Run Code Online (Sandbox Code Playgroud)
我的Xaml资源:
<lib:EnumToArrayConverter x:Key="E2A"/>
Run Code Online (Sandbox Code Playgroud)
以下是如何使用它:
<ComboBox SelectedItem="{Binding MyType}" ItemsSource="{Binding MyTypes, Converter={StaticResource E2A}}"/>
Run Code Online (Sandbox Code Playgroud)
所以,我的问题是如何为转换器指定我的枚举"MyTypes".我也尝试在命名空间前添加,但它没有帮助.
我刚开始将 JavaScript 转换为 TypeScript,这一行:
var re = new RegExp(/<script>(<h2.*?)<\/script>/g);
Run Code Online (Sandbox Code Playgroud)
显示错误:
“RegEx”类型的扩充不能分配给“string”类型的参数
如何解决?
我想在文档结束时停止滚动.我尝试了以下代码:
if (_webView.getScrollY() + _webView.getHeight() > _webView.getContentHeight())
_webView.scrollTo(0, _webView.getContentHeight() - _webView.getHeight());
Run Code Online (Sandbox Code Playgroud)
但是,基于我对不同网页的观察,它大多停在大约2/3的内容上,并且不能到达文档的末尾.
我想知道这三个涉及的功能是否使用不同的单位.基于android文档,getScrollY和getHeight以像素为单位,但getContentHeight返回"HTML内容的高度".那么getContentHeight()的单位是什么?还是我错过了别的什么?
wpf ×2
xamarin.ios ×2
algorithm ×1
android ×1
angular ×1
angularjs ×1
c# ×1
combobox ×1
datagrid ×1
electron ×1
enums ×1
fetch ×1
ipad ×1
json ×1
mongodb ×1
optimization ×1
post ×1
scroll ×1
search ×1
styles ×1
tabcontrol ×1
typescript ×1
uialertview ×1
webview ×1
winforms ×1