小编Phi*_*ert的帖子

在WP7中显示软键盘时,防止屏幕向上滚动?

当Windows Phone应用程序中显示软键盘时,有没有办法阻止屏幕向上移动?

我有一个位于屏幕上半部分的文本框,因此当显示软键盘时,它不会覆盖文本框.但是,当点击文本框时,屏幕仍会向上移动.

这可以预防吗?

windows-phone-7

18
推荐指数
2
解决办法
3550
查看次数

iPhone模拟器:使用合成实例变量时构建错误

Cocoa/Objective-C有两个运行时:遗留运行时和"现代"运行时(这就是Apple所说的).

根据Apple的文档," Mac OS X v10.5及更高版本的iPhone应用程序和64位程序使用现代版本的运行时 ".

到现在为止还挺好.

现在,"现代"运行时支持一个名为"合成实例变量"的功能,这意味着您不必为每个声明的属性定义实例变量.实例变量将自动添加.引用来自iPhone参考库:" 对于现代运行时,实例变量根据需要合成.如果已经存在同名的实例变量,则使用它. "

如果您在iPhone应用程序中使用此功能,它会在iPhone(物理)设备上构建并运行良好,但是当您将目标更改为"iPhone模拟器"时,会出现构建错误:

合成属性"x"必须与兼容的ivar命名相同,或者必须明确命名为ivar

这里发生了什么?iPhone模拟器不是真正的iPhone模拟器吗?这是否意味着模拟器使用与物理iPhone不同的运行时?

如何在iPhone模拟器上使用此功能?

编辑:

定位iPhone模拟器时无法编译的代码是:

@interface MyClass : NSObject {
}

@property NSString *prop1;

@end
Run Code Online (Sandbox Code Playgroud)

根据文档,这应该在"现代"运行时工作正常,事实上它确实在iPhone设备上,但它在将目标更改为iPhone模拟器时无法编译.

iphone runtime properties objective-c

13
推荐指数
1
解决办法
8750
查看次数

有没有办法确定iOS中的实际时间和日期(不是设备的时间)

在iOS中,我需要知道实际时间(UTC),而不是设备的时间.换句话说,用户不应该篡改时间或日期.

任何需要网络连接的东西都不好(因此不能选择访问时间服务器).

AFAIK,有两种理论方法可以达到这个目的:

  • 使用GPS卫星信号的时间戳
  • 从运营商处获取当前时间

问题是iOS中的任何API都不会公开此信息.

还有另外一种方法吗?

gps cellular-network ios

13
推荐指数
1
解决办法
1505
查看次数

为什么LambdaExpression.Compile()适用于iOS(Xamarin)?

由于Xamarin.iOS在运行时不支持代码生成,为什么Compile()和DynamicInvoke()按预期工作?

例如,以下代码工作正常:

var lambda = Expression.Lambda(
                          Expression.Add(
                              Expression.Constant(1),
                              Expression.Constant(2)
                          )
             );

var f = lambda.Compile();
var result = f.DynamicInvoke();

// result==3 at this point
Run Code Online (Sandbox Code Playgroud)

Xamarin是否在运行时评估表达式树而不是发出IL代码?

il ios xamarin

13
推荐指数
1
解决办法
1388
查看次数

XAML中的ItemsPanelTemplate忽略[ContentProperty]属性

我有一个自定义Panel,我声明了一个自定义属性来保存内容(我不想使用Children作为内容):

[ContentProperty(Name = "PanelContent")]
public class CustomPanel : Panel
{
    public static readonly DependencyProperty PanelContentProperty =
       DependencyProperty.Register("PanelContent", 
       typeof(Collection<UIElement>), typeof(CustomPanel), 
       new PropertyMetadata(new Collection<UIElement>(), null));

    public Collection<UIElement> PanelContent
    {
        get
        {
            return (Collection<UIElement>)GetValue(PanelContentProperty);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这样使用时效果很好:

<CustomPanel>
   <TextBlock>A</TextBlock>
   <TextBlock>B</TextBlock>
</CustomPanel>
Run Code Online (Sandbox Code Playgroud)

但是当我想在ItemsControl中使用面板作为ItemsPanelTemplate时,将忽略ContentProperty属性并将所有内容添加到Children集合,而不是PanelContent集合:

<ItemsControl ItemTemplate="{StaticResource ReviewTemplate}" ItemsSource="{Binding Reviews}">
   <ItemsControl.ItemsPanel>
      <ItemsPanelTemplate>
         <CustomPanel></CustomPanel>
      </ItemsPanelTemplate>
   </ItemsControl.ItemsPanel>
</ItemsControl>
Run Code Online (Sandbox Code Playgroud)

这不是它应该如何工作.根据文件:

ItemsPanelTemplate对象元素应该只包含一个FrameworkElement派生类,该类用作项的根元素.在大多数情况下,这是一个Panel派生类.扩展模板用作已实现项目的父项,并且通常存在多个项目.因此,ItemsPanelTemplate的预期根元素的XAML内容属性应该支持集合,如Panel.Children所做的那样.

c# xaml microsoft-metro windows-8

11
推荐指数
1
解决办法
1832
查看次数

在.NET中使用XmlReader取消XML实体?

我试图在.NET(C#)中的字符串中删除XML实体,但我似乎没有让它正常工作.

例如,如果我有字符串AT&amp;T,则应将其翻译为AT&T.

一种方法是使用HttpUtility.HtmlDecode(),但这是用于HTML.

所以我有两个问题:

  1. 使用HttpUtility.HtmlDecode()解码XML实体是否安全?

  2. 我如何使用XmlReader(或类似的东西)来做到这一点?我尝试了以下,但总是返回一个空字符串:

    static string ReplaceEscapes(string text)
    {
        StringReader reader = new StringReader(text);
    
        XmlReaderSettings settings = new XmlReaderSettings();
    
        settings.ConformanceLevel = ConformanceLevel.Fragment;
    
        using (XmlReader xmlReader = XmlReader.Create(reader, settings))
        {
            return xmlReader.ReadString();
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)

.net xml entities translate

10
推荐指数
2
解决办法
1万
查看次数

使用.NET中的特定DNS服务器查询DNS

在.NET应用程序中,我需要查询特定的DNS服务器以解析域名(DNS服务器未在Windows网络配置中定义).

我知道使用标准的.NET Framework类是不可能的(参见另一个问题).我的问题是我的选择.CodePlex(DnDns)上有一个开源库可以做到这一点,但它在很长一段时间内没有更新,我的应用程序是关键任务,所以可靠性非常重要.

有什么建议?

.net dns

9
推荐指数
3
解决办法
6375
查看次数

"as"关键字如何在内部工作?

我知道这个关键字的功能,但我想知道它是如何在较低级别上工作的.

哪一个更快?他们总能产生相同的结果吗?如果他们这样做,为什么有两种不同的方式?

// Is there an overhead? An internal try catch?
Class123 obj = someobject as Class123;

if (Class123 != null)
{
    //OK
}
Run Code Online (Sandbox Code Playgroud)

要么

Class123 obj = null;

if (someobject is Class123)
{
    obj = (Class123)someobject;
}
Run Code Online (Sandbox Code Playgroud)

c# clr

8
推荐指数
5
解决办法
2074
查看次数

Autolayout - 拉伸视图以填充其父视图

我在使用autolayout尝试使用子视图填充视图时发现了一些非常奇怪的行为.这个想法非常简单:向视图添加子视图并使其使用父视图的所有宽度.

NSDictionary *views = @{
                        @"subview":subView,
                        @"parent":self
                       };
Run Code Online (Sandbox Code Playgroud)

这不起作用:

[self addConstraints:
      [NSLayoutConstraint constraintsWithVisualFormat:@"H:|[subview]|" 
                                              options:0 
                                              metrics:nil 
                                                views:views]];
Run Code Online (Sandbox Code Playgroud)

子视图不使用父视图的完整宽度.

但这有效:

[self addConstraints:
      [NSLayoutConstraint constraintsWithVisualFormat:@"H:|[subview(==parent)]|" 
                                              options:0 
                                              metrics:nil 
                                                views:views]];
Run Code Online (Sandbox Code Playgroud)

我希望两者都能按预期工作.那么为什么第一个例子不起作用呢?这是Apple在以下技术说明中推荐的内容:

https://developer.apple.com/library/ios/technotes/tn2154/_index.html

编辑 :(删除无关信息)

objective-c ios autolayout

7
推荐指数
2
解决办法
4152
查看次数

.NET本机代码在构造函数上崩溃了吗?.Invoke()(null-propagation)

在经历了一天中的大部分时间之后,我偶然发现了使用.NET Native(用于Windows UWP应用程序)编译的.NET代码的一个非常奇怪的问题.

以下代码适用于任何.NET运行时环境,包括Mono,Xamarin等:

public class ABC {}
// ...
var constr = typeof(ABC).GetTypeInfo().DeclaredConstructors.First();

var abc = (ABC) constr?.Invoke(new object[0]);
// abc now contains an instance of ABC
Run Code Online (Sandbox Code Playgroud)

在具有.NET本机编译的Windows UWP上,代码会引发类型异常 NotImplementedException

但是,当删除空传播运算符时,它在.NET Native上完美运行:

public class ABC {}
// ...
var constr = typeof(ABC).GetTypeInfo().DeclaredConstructors.First();

var abc1 = (ABC) constr.Invoke(new object[0]);
// abc1 now contains an instance of ABC

// the following line throws an exception on .NET Native
// but it works fine on any other .NET runtime
var abc2 = …
Run Code Online (Sandbox Code Playgroud)

.net c# reflection .net-native null-propagation-operator

6
推荐指数
1
解决办法
297
查看次数