我在Mac上使用MonoDevelop编写MonoTouch应用程序.在我输入时,自动代码缩进/格式化效果很好.
问题是,当我复制并粘贴代码片段时,在许多情况下我会丢失格式并将行组合在一起,缩进会丢失,并且手动实现制表符,间距和换行符是一个巨大的痛苦.无论如何我可以使用monoDevelop中的命令自动缩进并将格式应用于现有代码.
我想也许编辑|格式|格式文档/选择可以工作,但这些命令根本不会对代码产生任何影响.
有帮助吗?
到目前为止,我很喜欢MonoTouch,但是一旦你通过了几门初学者课程,就会发现缺少文档和样本.
我正在努力解决在MonoTouch中填充简单UITableView的简单概念.我已经看到了使用自定义单元格执行此操作的示例,并使用不同的信息广泛地自定义列表,但我只是在寻找如何实现这一简单事情的最低限度.我是一名专业的.NET开发人员,对iOS很新,所以我仍然围绕着它的工作原理.
我只想要以下内容.创建项目列表将该项目列表分配给UITableView以允许用户滚动列表.寻找一个非常简单的例子.
我正在努力的最重要的事情是创建一个UITableViewDataSource对象.它是抽象的,所以我无法创建它的实例.我可以创建自己的继承它的类,但我正在寻找框架中的具体实现,而无需创建自己的实现.我是不是被.NET宠坏了,必须为它创建一个新类,或者它是否存在于Framework中的某个地方而我却找不到它?
[答案在这里] 我找到了答案,但StackOverflow不会让我以低于100的声誉回答我自己的问题,或者除非我等待8个小时,否则我不愿意这样做.答案如下:
我创建了以下继承UITableViewSource的类.要求这样做.GetCell控制如何在表格上呈现单元格.
创建一个这样的实例并传入要填充的字符串列表.
这个例子来自(我稍微修改过)我正在阅读Wrox出版社的书 - "使用MonoTouch和.NET C#的专业iPhone编程"
public class TableViewSource : UITableViewSource
{
private List<string> rows;
public TableViewSource (List<string> list)
{
rows = list;
}
public override int RowsInSection (UITableView tableview, int section)
{
return rows.Count;
}
public override UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath)
{
UITableViewCell cell = new UITableViewCell(UITableViewCellStyle.Default,"mycell");
cell.TextLabel.Text = rows[indexPath.Row];
return cell;
}
}
Run Code Online (Sandbox Code Playgroud)
将以下代码放在屏幕上的ViewDidLoad中.
var list = new List<String>()
{
"San Francisco",
"Buenos Aires",
"São Paulo"
};
TableViewSource tableData = new …Run Code Online (Sandbox Code Playgroud) 我正在尝试将UITextField的占位符文本设置为其他颜色。我了解到我需要继承并重写drawPlaceholderInRect方法。
(void) drawPlaceholderInRect:(CGRect)rect {
[[UIColor blueColor] setFill];
[[self placeholder] drawInRect:rect withFont:[UIFont systemFontOfSize:16]];
}
Run Code Online (Sandbox Code Playgroud)
这是到目前为止的内容,但是我无法弄清楚如何正确处理它。最后一行让我感到困惑,因为我不知道如何将其映射到MonoTouch / C#对象。
using System;
using MonoTouch.UIKit;
using MonoTouch.Foundation;
using System.Drawing;
namespace MyApp
{
[Register("CustomUITextField")]
public class CustomUITextField:UITextField
{
public CustomUITextField () :base()
{
}
public CustomUITextField (IntPtr handle) :base(handle)
{
}
public override void DrawPlaceholder (RectangleF rect)
{
UIColor col = new UIColor(0,0,255.0,0.7);
col.SetFill();
//Not sure what to put here
base.DrawPlaceholder (rect);}
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个可编码类的新实例,但我不确定如何:
var x = Articles();
Run Code Online (Sandbox Code Playgroud)
给了我以下错误:
调用中缺少参数“from”的参数
class Articles: Codable {
let value: [Article]?
}
Run Code Online (Sandbox Code Playgroud)
我不明白,因为这是一个无参数类。我不知道 from 参数是什么。
我已正确绑定Telerik RadGridView,第一列是绑定复选框:
<telerik:GridViewCheckBoxColumn DataMemberBinding="{Binding Selected, Mode=TwoWay}"
Header="Generate" Width="95" IsReadOnly="False"/>
Run Code Online (Sandbox Code Playgroud)
我可以点击并更改复选框状态没问题.问题是选中复选框并不直观.为了让用户单击复选框,他们必须先单击复选框单元格,再次单击以激活,然后再次单击以选中复选框.单击三次以选中复选框.
有没有更好的或本地的方式使这无缝?我希望用户能够单击一个复选框并立即查看它,无论是否已选择行/单元格.我希望用户只需点击一下即可进行检查.
Infragistics控制可以在几年前完成.
有人可以解释如何在Telerik RadGridView for Silverlight中获得更直观的复选框行为吗?
当我在XCode中编辑XIB时,我没有得到关联的.h文件显示在助理编辑器窗口中.其他XIB的工作正常.
这是一个问题,因为它是我通过拖动到助手窗口创建出口的方式.如果我在另一个窗口中手动打开.h文件,我也无法以这种方式关联插座..h文件存在.
此外,我的项目是MonoTouch,因此我从MonoTouch调用文件的打开.我认为这是一个源于MonoTouch而不是Xcode的问题.
有人请帮忙,否则我将很快被迫学习Objective C并退出MonoTouch业务.
在.NET中,我正在调用一个休息服务并获得异常 - 500 Internal Server Error.
HttpWebResponse response = request.GetResponse() as HttpWebResponse
Run Code Online (Sandbox Code Playgroud)
当我在Fiddler中分析它时(在TextView中),我得到了很多关于导致错误的正确异常的细节.
在我的异常对象中,我无法在InnerException(它为null)或Response对象本身中获取此信息.
有任何想法吗?
有没有办法允许我在Xcode XIB设计器中为MonoTouch项目选择和使用图像?
这比我现在这样做的速度快.
目前,我将我想要的图像添加到MonoDevelop中的Images文件夹中.然后我在Xcode中打开XIB并添加我的新控件.我为它创建了一个Outlet.我回到MonoDevelop并添加如下代码:
imgLogo.Image = UIImage.FromFile("Images/logo_sm.png");
出于某种原因,我无法在Xcode设计器中选择我的MonoDevelop图像.图像下拉选择器始终为空.
无论如何,我可以节省时间,并在设计师这样做?
我看到很多代码解释了如何在视图中居中子视图.代码示例通常如下所示:
SubView.center = view.center;
Run Code Online (Sandbox Code Playgroud)
有人可以向我解释这是如何工作的吗?我只是不明白.
在view.center给出了视图的中心点.例如,宽度为100,高度为100,它将返回(50,50).我知道了.
设置subview.center对我来说很奇怪. subview.center将返回子视图的中心点.不知何故,将其设置为(50,50)会将子视图定位在其父级中,坐标为50/50.但是如果子视图本身宽度为50且高度为50,则访问此属性将返回let(),然后返回(25,25).
我的意思是什么?这里的概念对我来说很奇怪,因为setter和getter正在做不同的功能.
如果有人可以解释这个,请做.或者,如果我离开基地,我也想知道.我是iOS开发的新手.
如果我是正确的,这确实是它的工作方式,你不会认为这是一种反模式.当然,在.NET中,这样的东西就是反模式.也许不适合Obj-C?
我想知道是否有特殊的语法来绑定与现有文本连接的文本.
像这样的东西.
<TextBlock Grid.Row="0" Name="tbGroupMembershipCaption"
Text="The following users have access to export to '{Binding TargetName}'."/>
Run Code Online (Sandbox Code Playgroud)
显然,这不起作用.
什么是最佳做法?
使用SL4.
xamarin.ios ×5
c# ×3
ios ×3
objective-c ×2
silverlight ×2
data-binding ×1
fiddler ×1
monodevelop ×1
rest ×1
swift ×1
telerik-grid ×1
uitableview ×1
uitextfield ×1
xaml ×1
xcode ×1