小编Tom*_*rst的帖子

在iOS/WebKit textarea中删除3个像素

我正在尝试创建一个textarea看起来完全像一个div.

但是,在iOS上有3个像素来自我无法删除的地方.

这是我的代码:

<!doctype html>
<title>Textarea test</title>
<style>
textarea, div
{
  background: yellow;
  font: 13px arial;
  border: 0;
  padding: 0;
  border-radius: 0;
  margin: 0;

  -webkit-appearance: none;
}
</style>
<div>test</div>
<hr>
<textarea>test</textarea>
Run Code Online (Sandbox Code Playgroud)

这样渲染(我放大了):

3个额外像素

截图显示,在我要删除的文本之前有3个像素.据我所知,它不是边距/填充或边框.

这发生在我的iPhone和iPad上,都运行iOS 4.3.并且要清楚; 我的桌面上的Safari/Firefox/Chrome上没有显示这3个额外的像素.或者我兄弟的Windows Phone,就此而言.

编辑2011-08-10:
我刚刚测试了这个<input type=text>并且出现了相同的"填充"事物,除了它是1像素而不是3.

webkit textarea padding ios

24
推荐指数
1
解决办法
6067
查看次数

检查Swift 3中的调度队列是否正确

我有几个单元测试,我想测试是否在正确的调度队列上调用了回调.

在Swift 2中,我将当前队列的标签与我的测试队列进行了比较.但是在Swift 3中,DISPATCH_CURRENT_QUEUE_LABEL常量不再存在.

我确实找到了这个dispatch_assert_queue功能.这似乎是我需要的,但我不知道如何称呼它.

我的Swift 2代码:

let testQueueLabel = "com.example.my-test-queue"
let testQueue = dispatch_queue_create(testQueueLabel, nil)

let currentQueueLabel = String(UTF8String: dispatch_queue_get_label(DISPATCH_CURRENT_QUEUE_LABEL))!
XCTAssertEqual(currentQueueLabel, testQueueLabel, "callback should be called on specified queue")
Run Code Online (Sandbox Code Playgroud)

更新:

我对缺乏自动完成感到困惑,但可以使用__dispatch_assert_queue:

if #available(iOS 10.0, *) {
  __dispatch_assert_queue(test1Queue)
}
Run Code Online (Sandbox Code Playgroud)

虽然这确实适用于单元测试,但它会烦人地停止整个过程EXC_BAD_INSTRUCTION而不是仅仅测试失败.

grand-central-dispatch swift swift3

19
推荐指数
3
解决办法
9972
查看次数

Haskell统计列表类型

所以,为了好玩,我一直在使用Peano数字和智能构造函数在Haskell中使用CountedList类型.

类型安全head,tail对我来说真的很酷.

我想我已达到了解我该怎么做的极限

{-# LANGUAGE EmptyDataDecls #-}
module CountedList (
  Zero, Succ, CountedList,
  toList, ofList, 
  empty, cons, uncons, 
  head, tail, 
  fmap, map, foldl, foldr, filter
) where

import qualified List (foldr, foldl, filter)
import Prelude hiding (map, head, foldl, foldr, tail, filter)

data Zero
data Succ n
data CountedList n a = CL [a]

toList :: CountedList n a -> [a]
toList (CL as) = as

ofList :: [a] -> CountedList n a
ofList …
Run Code Online (Sandbox Code Playgroud)

haskell list existential-type

16
推荐指数
1
解决办法
489
查看次数

XmlTextWriter错误地编写控制字符

.NET XmlTextWriter会创建无效的xml文件.

在XML中,允许一些控制字符,例如'horizo​​ntal tab'(&#x9;),但其他控件字符不像'vertical tab'(&#xB;).(见规格)

我有一个字符串,其中包含XML中不允许的UTF-8控制字符.
虽然XmlTextWriter逃避了角色,但最终的XML仍然是无效的.

如何确保XmlTextWriter永远不会生成非法的XML文件?

或者,如果无法执行此操作XmlTextWriter,如何从字符串中删除XML中不允许的特定控制字符?

示例代码:

using (XmlTextWriter writer =
  new XmlTextWriter("test.xml", Encoding.UTF8))
{
  writer.WriteStartDocument();
  writer.WriteStartElement("Test");
  writer.WriteValue("hello \xb world");
  writer.WriteEndElement();
  writer.WriteEndDocument();
}
Run Code Online (Sandbox Code Playgroud)

输出:

<?xml version="1.0" encoding="utf-8"?><Test>hello &#xB; world</Test>
Run Code Online (Sandbox Code Playgroud)

.net c# xml xmltextwriter control-characters

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

在处理许多不相关的类型时避免样板

我正在编写处理来自Language.Exts.Annotated.Syntax的值的代码,其中定义了各种类型的镜像Haskell模块的结构:

data Module l = ...
data Decl l = ...
data Exp t = ...
-- etc
Run Code Online (Sandbox Code Playgroud)

我希望能够编写处理这些数据结构并对它们执行各种转换的函数.因为没有一种常见的数据类型,所以我无法编写一个可以完成所有操作的函数.

到目前为止,我已经编写了一个Tree包装这些类型的类型,以便我的转换函数可以执行Tree l -> Tree l:

data Tree l = ModuleT (Module l)
            | DeclT (Decl l)
            | ExpT (Exp l)
            -- etc copy & paste
Run Code Online (Sandbox Code Playgroud)

但是我现在发现自己编写了很多代码,需要Module包含它ModuleT,包装它,调用函数,然后再将结果重新打包Module.我有:

class AnnotatedTree ast where
  tree :: ast l -> Tree l
  untree :: Tree l -> ast l

instance AnnotatedTree Module where
  tree …
Run Code Online (Sandbox Code Playgroud)

haskell generic-programming

9
推荐指数
1
解决办法
276
查看次数

可可豆荚和Watchkit Extesion

我尝试为我的应用程序构建一个WatchKit扩展...

我更新了pods文件,如下所示:

platform:ios, '8.0'
use_frameworks!
source 'https://github.com/CocoaPods/Specs.git'

link_with 'my-team-ios', 'My Team WatchKit Extension'

def shared_pods
    pod 'DOSingleton'
    pod 'JSONModel'
    pod 'MagicalRecord'
end

target :'My App' do
    shared_pods
    pod 'Facebook-iOS-SDK', '~> 3.23.1'
    pod 'Reveal-iOS-SDK', :configurations => ['Debug']
    ... some more pods here...
end

target :'My Team WatchKit Extension' do
    shared_pods
end
Run Code Online (Sandbox Code Playgroud)

我如何安装pod并且没有出错...

但是,当我构建应用程序时,我收到此错误:

ld: framework not found Pods
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)

我的问题在这里是什么?

ios cocoapods xcode6 watchkit

8
推荐指数
2
解决办法
7376
查看次数

如何使用SemanticModel检查变量是否已经过测试?

我正在研究Roslyn扩展,以警告不受保护.ValueNullable<T>值访问.

这提供了以下行为:

警告:

这个扩展已经很有效了,但是测试访问是否"安全"的代码有点像黑客.我现在只需走语法树,寻找if语句.

这种方法非常难看,会产生一堆无效的警告.

以下是访问x.Value应该是安全的一些示例:

int y;
int? x = foo();

y = x != null ? x.Value : 42;

if (x > 4)
  y = x.Value;

if (x != null && someExpr) // With && only one branch needs to be a test
  y = x.Value;

if (x == 3 || x == 4) // With || both branches must be a test
  y = x.Value;

if …
Run Code Online (Sandbox Code Playgroud)

c# roslyn

7
推荐指数
1
解决办法
338
查看次数

来自Week和WeekYear的LocalDate

使用NodaTime库,如何根据周数和周WeekYear计算一周中第一天的LocalDate.

与此相反:

var date = new LocalDate(2012, 1, 1);
int weekYear = date.WeekYear;      // 2011
int weekNr = date.WeekOfWeekYear;  // 52
Run Code Online (Sandbox Code Playgroud)

像这样的假代码:

var newDate = LocalDate.FirstDayFromWeek(weekYear, weekNr);
Run Code Online (Sandbox Code Playgroud)

c# nodatime

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

ExtJS DateField使用不同的显示格式

我在ASP.NET MVC Web应用程序中使用ExtJS DateField控件.

我已将format属性设置为"Ymd",因此它将从服务器正确解析"2009-08-11"格式,并将以该格式发回.

但是,我想以不同的,更加用户友好的格式显示数据,特别是西班牙语中的"d mmm yyyy".

我似乎无法弄清楚如何做到这一点.我不认为该altFormats属性有帮助,因为这只会增加更多的解析格式.

是否可以使用不同的显示格式的解析格式?或者我是以错误的方式来做这件事的?

javascript extjs

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

Haskell如何知道你指的是哪个类型类实例?

这个问题出现在阅读关于应用函子的优秀的Learn You a Haskell的新篇章中.

作为Maybe实例的定义的一部分,Applicative类型类具有:

pure = Just
Run Code Online (Sandbox Code Playgroud)

如果我只是去GHCi并导入Control.Applicative,并执行:

pure (3+)
Run Code Online (Sandbox Code Playgroud)

我没有得到任何东西(有道理).但是,如果我在表达式的一部分中使用它:

pure (3+) <*> Just 4
Run Code Online (Sandbox Code Playgroud)

我得到的只是7.我想这也就不足为奇了,但是我错过了关于类型类如何工作的一些不可或缺的东西,我认为,pure这里的调用没有含糊之处.

如果我的困惑有意义,任何人都可以详细解释发生了什么吗?

haskell type-inference typeclass

4
推荐指数
1
解决办法
637
查看次数

访问泛型对象的非泛型成员

有没有办法收集(例如在List中)不共享一个共同超类的多个"通用"对象?如果是这样,我如何访问他们的共同属性?

例如:

class MyObject<T>
{
   public T Value { get; set; }
   public string Name { get; set; }

   public MyObject(string name, T value)
   {
      Name = name;
      Value = value;
   }
}

var fst = new MyObject<int>("fst", 42);
var snd = new MyObject<bool>("snd", true);

List<MyObject<?>> list = new List<MyObject<?>>(){fst, snd};

foreach (MyObject<?> o in list)
   Console.WriteLine(o.Name);
Run Code Online (Sandbox Code Playgroud)

显然,这是伪代码,这不起作用.

此外,我不需要访问.Value属性(因为这不是类型安全的).

编辑:既然我一直在考虑这个问题,那么可以使用子类.但是,我认为这意味着我必须为每个新类型编写一个新的子类.


@ Grzenio 是的,这完全回答了我的问题.当然,现在我需要复制整个共享接口,但这不是一个大问题.我应该想到这个......

@ aku 你对鸭子打字是正确的.我不希望可以访问两个完全随机类型的对象.

但我认为通用对象会共享某种通用接口,因为它们完全相同,除了它们被参数化的类型.显然,情况并非如此.

.net c# generics

3
推荐指数
1
解决办法
1144
查看次数

ASP.NET MVC:OutputCache属性忽略RequireHttps属性?

我有一个ASP.NET MVC 3应用程序,其动作同时使用RequireHttpsOutputCache属性:

[RequireHttps]
[OutputCache(Duration = 14400, VaryByCustom = "CurrentUser"]
public ActionResult VersionB()
{
  return View();
}
Run Code Online (Sandbox Code Playgroud)

当我导航到该页面时,我会按预期重定向到HTTPS.

但是,在初始页面加载之后,我仍然可以通过HTTP访问页面.如果我删除该OutputCache属性,我将无法再通过HTTP访问该页面.

似乎OutputCache忽略了HTTPS,因此允许对页面进行不安全的访问.是否可以缓存通过HTTPS提供的操作?

asp.net-mvc outputcache requirehttps asp.net-mvc-3

3
推荐指数
1
解决办法
1250
查看次数