Tag: xamarin.ios

TPL可以在多个线程上运行任务吗?

Mono / Xamarin特定的答案受到欢迎。 我正在使用Task.Run()运行System.Threading.Tasks。 TPL是否会在任务执行期间将创建的任务分配给单个线程? 或者创建的任务是否可能在运行时被抢占,然后再次在另一个线程上安排? Thread.CurrentThread.ManagedThreadId会在任务的生命周期内保持不变吗? 对于长期运行的任务,答案是否不同? 有没有办法控制这方面的TPL行为?

C#.NET中的UTF-16安全子字符串

我想得到一个给定长度的子串150.但是,我想确保我不切断unicode字符之间的字符串。 例如,请参阅以下代码: var str = “Hello😀 world!”; var substr = str.Substring(0, 6); 这里substr是一个无效的字符串,因为笑脸字符被切成两半。 相反,我想要一个如下function: var str = “Hello😀 world!”; var substr = str.UnicodeSafeSubstring(0, 6); 其中substr包含“Hello😀” 作为参考,以下是我将如何使用rangeOfComposedCharacterSequencesForRange在Objective-C中rangeOfComposedCharacterSequencesForRange NSString* str = @”Hello😀 world!”; NSRange range = [message rangeOfComposedCharacterSequencesForRange:NSMakeRange(0, 6)]; NSString* substr = [message substringWithRange:range]]; C#中的等效代码是什么?

MvvMCross与格式字符串绑定

如何为绑定添加格式,使用string.Format或类似的东西格式化绑定值? 我在其他线程中看到,您可以传递一个converterName。 是否存在针对此问题的转换器? 我在哪里可以看到MvvMCross v3的标准转换器列表? 我很快浏览了代码,但找不到任何东西。 我知道可能会发生信息丢失,这会破坏双向绑定,但我只想要这个来显示值。 我的具体案例是DateTime的绑定。 bindings.Bind(purchaseDate).To(vm => vm.RegisteredDevice.PurchaseDate); 我的愿望,例如: bindings.Bind(purchaseDate).To(vm => vm.RegisteredDevice.PurchaseDate).WithFormat(“hh:mm”);

Monotouch中的WebClient无法完成文件下载

我正在使用下载video文件的monotouch完成应用程序的开发。 像TEDTalks应用程序之类的东西。 但我遇到的问题是WebClient.DownloadFileAsync没有完全可靠地下载文件,但每次都经常挂起并且不会继续下载文件。 尽管我已经监控了应用程序的内存使用情况,但不受下载文件大小的影响,但文件较大时问题最严重。 我用来在本地写文件的文件流定期刷新。 我尝试重写该类以使用具有相同结果的HttpWebRequest。 任何想法将不胜感激,谢谢。

Xamarin仅在设备上丢失了自定义objc类别(无法识别的选择器发送到实例)

情况: 我有一个在我的objc静态库中定义的自定义类别: @implementation UIViewController (Colorful) -(void)changeColor:(UIColor *)color { self.view.backgroundColor = color; } @end 它绑定到Xamarin项目: [Category, BaseType(typeof(UIViewController))] interface UIViewController_Colorful { [Export (“changeColor:”)] void ChangeColor(UIColor color); } 此类别用于以下代码: public override bool FinishedLaunching (UIApplication app, NSDictionary options) { window = new UIWindow (UIScreen.MainScreen.Bounds); UIViewController vc = new UIViewController (); vc.ChangeColor (UIColor.Red); window.RootViewController = vc; window.MakeKeyAndVisible (); return true; […]

地理定位不适用于iOS PCL Xamarin表单

我试图通过此示例https://github.com/XLabs/Xamarin-Forms-Labs/wiki/Geolocator获取设备位置。 这适用于模拟器,但在iPad Air上不起作用。 我的info.plist文件包含位置的所有必要密钥。,NSLocationUsageDescription和NSLocationWhenInUseUsageDescription 在代码中 if (this.manager.RespondsToSelector(new Selector(“requestWhenInUseAuthorization”))) { this.manager.RequestWhenInUseAuthorization(); } 使用Geolocator对象的一段代码.. IGeolocator geolocator = null; geolocator = DependencyService.Get(); if (geolocator != null) { if (geolocator.IsGeolocationEnabled) { try { if (!geolocator.IsListening) geolocator.StartListening(1000, 1000); var task = await geolocator.GetPositionAsync(10000, CancellationToken.None); if(task != null) { this.Position = task; } 但是LocationUpdated事件永远不会发生…… 设备上的位置已开启。 如果有人有类似的问题…….请帮助…..一旦,这项工作在模拟器上。 我在iPad Air上使用VS 2013,Xamarin 3.7,Xamarin.iOS 8.4,iOS […]

如何打破视图控制器和数据源之间的引用循环

考虑这个简单的例子: public partial class TableViewController : UITableViewController { public TableViewController (IntPtr handle) : base (handle) { } protected override void Dispose (bool disposing) { Console.WriteLine (String.Format (“{0} controller disposed – {1}”, this.GetType (), this.GetHashCode ())); base.Dispose (disposing); } public override void ViewDidLoad () { //TableView.Source = new TableSource(this); TableView.Source = new TableSource(); } } public […]

MvvmCross Bindable MonoTouch.Dialog RadioElement

我正在尝试创建一个可绑定的RadioElement,用于MvvmCross中的MonoTouch.Dialog实现,并遵循https://github.com/MvvmCross/MvvmCross-Tutorials/tree/master/DialogExamples/DialogExamples.Touch/BindableElements中的模式(正如在MvvmCross Monotouch.Dialog中将数据绑定到表中所建议的那样 ,我创建了以下类: public class MvxBindableRadioElement : RadioElement, IBindableElement { public IMvxBindingContext BindingContext { get; set; } public MvxBindableRadioElement () { this.CreateBindingContext(); this.DelayBind(() => { var set = this.CreateBindingSet(); set.Bind().For(me => me.Caption).To(p => p.Id); set.Bind().For(me => me.Value).To(p => p.Value); set.Apply(); }); } protected override void Dispose(bool disposing) { if (disposing) { BindingContext.ClearAllBindings(); } base.Dispose(disposing); } […]

Monotouch UIPopover iPhone覆盖_popoversDisabled

我在youtube上看到了这个video,在objective-c中他能够覆盖_popoversDisabled方法并允许它们显示在iPhone上。 我的问题是,如何在monotouch中做同样的事情,如下所示: This code was written by @hamzasood =============================== =====popover code=========== ============================= @interface UIPopoverController (overrides) + (BOOL)_popoversDisabled; @end @implementation UIPopoverController (overrides) + (BOOL)_popoversDisabled { return NO; } @end Objective-Cvideo教程: http : //www.youtube.com/watch?v = 1iykxemuxbk&feature = related

调用号码后是否可以自动返回应用程序?

在我的应用程序中,我有一些电话号码,以便用户可以拨打电话号码。 当用户点击数字时,它会将它们推出应用程序以拨打他们点击的号码。 我想要的是应用程序应该在对话完成后让用户回到应用程序。 在邮件模式下,您可以使用MFMailComposeController ,然后切换回上一个视图。 因此,当您使用MFMailComposeController时,您永远不会离开应用程序。 public override void ViewDidLoad () { base.ViewDidLoad (); //Call A number this.buttonCall.TouchUpInside += delegate { NSUrl url = new NSUrl (“tel:0707878039”); if (UIApplication.SharedApplication.CanOpenUrl (url)) { UIApplication.SharedApplication.OpenUrl (url); } else { Console.WriteLine (“Cannot open url: {0}”,url.AbsoluteString); } } 那么有办法吗?