我想创建一个UIView有多个UITextFields验证每个UITextFields用户完成编辑它.视图控制器是每个UITextField的委托.当用户更改其中一个UITextFields中的值并触摸键盘上的"done"或触摸视图中的另一个文本字段时,我保存并验证更改.这里的想法是给用户立即反馈,如果输入了无效的属性值,则不允许他/她继续进行.
我已经阅读了Apple支持文档上的Text and Web Programming Guide,它建议我将保存/验证逻辑放在textFieldShouldEndEditing:
:
验证输入字符串的最佳委托方法是textFieldShouldEndEditing:用于文本字段,textViewShouldEndEditing:用于文本视图.在文本字段或文本视图重新调出第一响应者状态之前调用这些方法.返回NO可防止发生这种情况,因此文本对象仍然是编辑的焦点.如果输入的字符串无效,您还应显示警告以通知用户该错误.
所以为了测试这个,我用一个UIView和两个UITextField创建了一个简单的项目.根据文档,我在这个测试项目中所做的只是显示一个UIAlertView并返回NO.这是方法:
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField {
// return YES to allow editing to stop and to resign first responder status. NO to disallow the editing session to end
NSLog(@"In function: textFieldShouldEndEditing:(UITextField *)textField (tag=%i)", textField.tag);
[self logFirstResponder];
// PRETEND THAT THERE IS AN ISSUE THAT FAILS VALIDATION AND DISPLAY
// A UIALERTVIEW.
UIAlertView *errorAlert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Uh Oh!",@"")
message:@"This is a test error"
delegate:self
cancelButtonTitle:NSLocalizedString(@"OK",@"")
otherButtonTitles:nil];
[errorAlert show];
[errorAlert release]; …
Run Code Online (Sandbox Code Playgroud) 基本问题是:我有一个图像文件的链接.单击链接时所需的行为是获取下载对话框,这将允许我启动相关的图像编辑器.这不会发生,因为图像文件是由浏览器呈现的.
当用户点击链接时,是否有任何html魔术可以强制浏览器提供下载对话框?
任何帮助或指针将不胜感激.
Eric Lippert对这个问题的评论让我彻底糊涂了.C#中的转换和转换有什么区别?
我使用Netbeans在C中做了一个小型应用程序。我已经在Netbeans中运行了该应用程序,它创建了一个exe。我使用了该exe,它在我的comp上运行良好,但是当我将其移至其他comp时,它说:“此应用程序无法启动,因为未找到cygwin1.dll。重新安装该应用程序可能会解决此问题。”
我如何创建该exe,以便它可以在任何地方运行?
我收到以下错误:
"COM object that has been separated from its underlying RCW cannot be used."
Run Code Online (Sandbox Code Playgroud)
我确信问题是因为 COM 对象不是在它创建的线程上被调用 - STA。我尝试实现 IDisposable 但它对我不起作用。
有几个帖子处理类似的问题,但仍然没有解决我的问题:
从终结器调用 RCW 安全吗? 在我的析构函数中释放 Excel 对象
谁能发布一个示例/解释如何从另一个线程正确访问 COM 对象?
这是显示问题的最小代码:
using System;
using System.Threading;
namespace Test.ComInterop
{
public class Program
{
MyCom _myCom;
[STAThread]
static void Main( string[] args )
{
new Program();
}
public Program()
{
_myCom = new MyCom();
// this method call works
string version = _myCom.ComMethod();
StartThread();
}
private void StartThread()
{
Thread t …
Run Code Online (Sandbox Code Playgroud) 我有一个A类,它有以下几点:
public class A {
[Import(typeof(IMyService)]
public IMyService MyService { get; set; }
public A() {
CompositionInitializer.SatisfyImports(this);
}
public void DoWork() {
//Blah
MyService.DoIt();
//Blah
}
}
Run Code Online (Sandbox Code Playgroud)
和测试这个测试(分开的Dll - 显然)
[TestMethod]
public void TestDoWork() {
//Blah
DoWork();
//Assert assert
}
Run Code Online (Sandbox Code Playgroud)
这失败了,因为尝试调用'MyService'会给我null.我接着尝试过:
[ClassInitialize]
public void InitialiseClass() {
var myService = new Mock<IMyService>();
MyService = myService.Object;
}
Run Code Online (Sandbox Code Playgroud)
将'MyService'声明为:
[Export(typeof(IMyService))]
public IMyService MyService { get; set; }
Run Code Online (Sandbox Code Playgroud)
但仍然没有快乐,我错过了什么 - 这甚至可能吗?
我正在使用SL3,MEF Preview 9和MOQ.
任何帮助赞赏!
干杯
克里斯
我有一个shell脚本,它将一个awk程序构造为一个字符串,然后将该字符串传递给awk.这是因为我想在awk程序中使用shell变量的值.
我的代码看起来像这样:
awk_prog="'{if (\$4~/$shell_var/) print \$1,\$2}'"
echo $awk_prog
awk $awk_prog $FILENAME
Run Code Online (Sandbox Code Playgroud)
但是,当我将字符串传递给awk时,我总是得到错误:
'{if ($4~/regex/) print $1,$2}'
awk: '{if
awk: ^ invalid char ''' in expression
Run Code Online (Sandbox Code Playgroud)
该错误消息的含义是什么?我尝试了-F:开关,但没有帮助.我该如何解决这个问题?
谢谢.
Intellij 是否有任何方法可以自定义过滤为代码完成而显示的方法?例如,如果我有一个实现集合的类,那么在按 Ctrl-Space 或 Ctrl-Shift-Space 时将显示大量方法。我希望能够完成代码,只显示当前对象的方法。能够配置某些类的方法过滤也可以。
由于集合的大量方法,这在 Groovy 中尤其令人讨厌。因为我知道它们,所以我很少希望在它们上完成代码,但是它们给代码完整下拉列表添加了很多噪音。
我看到了警告:
DEPRECATION WARNING: Base#after_update has been deprecated, please use Base.after_update :method instead. (called from <class:City> at /home/petrushka/webdev/my_app/app/models/city.rb:4)
Run Code Online (Sandbox Code Playgroud)
我该怎么写而不是
def after_update
....
end
Run Code Online (Sandbox Code Playgroud) 有谁知道如何在Silverlight单元测试项目中测试私有函数?在*_Accessor对象似乎并没有他们是在一个正常的单元测试项目可用.