我有兴趣听取其他开发人员关于设计用户界面,可用性和可维护性的意见和经验.
常见的方法是允许用户调整选项,并在表单"脏"后启用"应用"按钮,用户可以通过按取消来退出.这是Windows平台上最常用的方法(我相信MS可用性指南也是这样做的).
另一种方法是在对选项进行每次更改后应用更改.例如,用户检查一些复选框,并应用更改.用户更改某些文本框的值,并在框失去焦点等后应用更改.您可以获得该点.这种方法在Mac OSX上最常见.
无论我的个人意见是什么(这是Apple在可用性方面做得更好,但是我经常编写针对Windows用户的软件),你会怎么想?
编辑:我完全清楚这不是一个真正的问题,而是要求进行讨论,并且它的位置可能不在SO上,其政策是仅提供答案和问题.但我相信它可能是有用的讨论,主要是因为我在问之前找不到类似的东西.
我有一些代码使用jQuery执行ajax请求,并处理成功和错误条件.如果出错,我想知道我调用的URL是什么,所以我可以记录它.此信息似乎包含在XMLHttpRequest.channel中,但是firefox正在抱怨访问此信息 -
Permission denied for <http://localhost:8081> to get property XMLHttpRequest.channel
Run Code Online (Sandbox Code Playgroud)
有关如何确定与XMLHttpRequest关联的URL的任何想法?掌握这些信息的安全问题是什么?干杯,
科林
我有两个表table1和table2,我需要编写一个select查询,它将列出两个表中存在的列.(MySQL的)
我需要做不同的表(一次2个)
这可能吗?
我尝试过使用INFORMATION_SCHEMA.COLUMNS但是无法做到正确.
我需要在UITableView中列出特定用户上传的视频(YouTube).我已经下载了GData源代码和示例项目(不是特定于iPhone的),但我似乎无法让它工作.有人知道有什么好的(或任何根本的))教程吗?
最好的问候,马格努斯
我有一些我在Perl中解析的数据,并且将在不久的将来添加越来越多不同格式的数据.我想要做的是编写一个易于使用的函数,我可以传递一个字符串和一个正则表达式,它将返回括号中的任何内容.它会像这样工作(伪代码):
sub parse {
$data = shift;
$regex = shift;
$data =~ eval ("m/$regex/")
foreach $x ($1...$n)
{
push (@ra, $x);
}
return \@ra;
}
Run Code Online (Sandbox Code Playgroud)
然后,我可以这样称呼它:
@subs = parse ($data, '^"([0-9]+)",([^:]*):(\W+):([A-Z]{3}[0-9]{5}),ID=([0-9]+)');
Run Code Online (Sandbox Code Playgroud)
如您所见,此代码存在一些问题.我不知道eval是否会起作用,'foreach'肯定不会起作用,而且不知道有多少括号,我不知道循环多少次.
这对于拆分来说太复杂了,所以如果还有其他功能或可能性我忽视,请告诉我.
谢谢你的帮助!
是否可以重命名/重构类文件并让它重命名磁盘上的实际文件?如果是这样,我该怎么做?
我正在尝试创建一个手风琴类型的uitableviewcell,当用户选择单元格时,它会展开以显示内嵌的详细信息视图,类似于digg应用程序的工作方式.我最初尝试用cellForRowAtIndex中的customcell替换当前的tablecell但是动画看起来有点不稳定,因为你可以看到被替换的单元格,整体效果不好.
如果你看看digg应用程序以及其他已经完成此操作的应用程序,似乎它们不会替换当前的单元格,而是可能在单元格中添加子视图?然而,原始单元似乎根本没有动画,只有新视图符合表格.
有没有人有任何想法如何实现类似的效果?
更新: 我已经使用下面的neha方法取得了一些进展,同时单元格正在动画正确的方式,它会对表格中的其他单元格造成严重破坏.我所做的是使用自定义类子类化UITableViewCell,该类包含一个实际绘制视图的UIView实例,然后我将其添加到表格单元内容视图中.
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
if (selected) {
[self expandCell];
}
}
-(void)expandCell {
self.contentView.frame = CGRectMake(0.0, 0.0, self.contentView.bounds.size.width, 110);
}
Run Code Online (Sandbox Code Playgroud)
以下是我正在使用的所有表委托方法:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
if (isSearching && indexPath.row == selectedIndex) {
static NSString *CellIdentifier = @"SearchCell";
CustomTableCell *cell = (CustomTableCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[CustomTableCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
[cell setCustomTitle:[timeZoneNames objectAtIndex:indexPath.row] detail:[timeZoneNames objectAtIndex:indexPath.row]];
UILabel *theText = [[UILabel alloc] initWithFrame:CGRectMake(10.0, 10.0, cell.contentView.bounds.size.width -20, 22.0)];
theText.text = …Run Code Online (Sandbox Code Playgroud) 通过XHR提交"创建"模式对话框然后应刷新Yii CGridView中的行.
我试图通过在XHR"创建"操作中渲染新的gridview然后将其插入到页面中来实现这一点$("#list").html(response),但是渲染CGridView导致jQuery <script>包含标记被注册以包含,所以当我将这些标记引入到页面他们重新加载jQuery,它消灭了我的现场活动处理程序,所以一堆东西打破了.
让我思考的是,"GridView知道如何刷新自己.哎呀,它总是在排序或页面上做."
所以我可以从js中单击GridView中的一个排序按钮,但那不是理想的.我更愿意说
$("#list").gridview('reload')或$ .fn.gridview.reload("#list")或某种意义.
或者做一些很酷的事情,你刚才想到的那么简单.
// itemCounter is a Dictionary<string, int>, and I only want to keep
// key/value pairs with the top maxAllowed values
if (itemCounter.Count > maxAllowed) {
IEnumerable<KeyValuePair<string, int>> sortedDict =
from entry in itemCounter orderby entry.Value descending select entry;
sortedDict = sortedDict.Take(maxAllowed);
itemCounter = sortedDict.ToDictionary<string, int>(/* what do I do here? */);
}
Run Code Online (Sandbox Code Playgroud)
Visual Studio要求参数Func<string, int> keySelector.我尝试了一些我在网上找到并放入的半相关示例k => k.Key,但这会产生编译错误:
'System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<string,int>>'不包含'ToDictionary'的定义,最好的扩展方法重载'System.Linq.Enumerable.ToDictionary<TSource,TKey>(System.Collections.Generic.IEnumerable<TSource>, System.Func<TSource,TKey>)'有一些无效的参数
我正在运行一个非常简单的C++程序:
#include <list>
#include <vector>
int main(int argc, char **args) {
}
Run Code Online (Sandbox Code Playgroud)
我转到命令提示符并编译并运行:
g++ whatever.cpp
a.exe
Run Code Online (Sandbox Code Playgroud)
通常情况下这很好.它编译得很好,但是当我运行它时会说拒绝访问并且AVG弹出告诉我已经检测到威胁Trojan Horse Generic 17.CKZT.我尝试使用Microsoft编译器(cl.exe)再次编译,它运行罚款.所以我回去了,并补充道:
#include <iostream>
Run Code Online (Sandbox Code Playgroud)
使用g ++编译并运行.这次它工作得很好.
所以任何人都可以告诉我为什么AVG会报告一个空的主要方法作为特洛伊木马,但如果包含iostream标题,它不会?
更新:
我在main方法中添加了一个return语句,现在我发现如果我返回0,我只会得到错误.任何其他返回值,它似乎工作正常.
这里发生了什么?
iphone ×3
jquery ×2
objective-c ×2
antivirus ×1
c# ×1
c++ ×1
eval ×1
g++ ×1
gdata-api ×1
iostream ×1
javascript ×1
linq ×1
mysql ×1
perl ×1
php ×1
refactoring ×1
regex ×1
renaming ×1
subroutine ×1
todictionary ×1
ui-design ×1
uitableview ×1
xcode ×1
yii ×1
youtube ×1