小编Lud*_*rin的帖子

如何使用命令行工具为Mac OS X创建漂亮的DMG?

我需要为Mac应用程序创建一个不错的安装程序.我希望它是一个磁盘映像(DMG),具有预定义的大小,布局和背景图像.

我需要在脚本中以编程方式执行此操作,以集成到现有构建系统中(实际上更多是打包系统,因为它只创建安装程序.构建是单独完成的).

我已经使用"hdiutil"完成了DMG创建,我还没有发现如何制作图标布局并指定背景位图.

macos scripting installer dmg

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

Bash 引用当前路径 (pwd)

PWD当当前路径包含空格时,我遇到了一个最烦人的问题,该问题发生在变量上。我的代码看起来有点像这样:

mycommand |sed -E '  
 s|mystuff|replacement| ;  
 s|'$(pwd)'|replacement| ;  
 '
Run Code Online (Sandbox Code Playgroud)

这很好用,除非当前路径包含空格字符。如果是,$(pwd)则扩展为

'我的路径/有空间'
而不仅仅是
mypath/有空间

这会导致 sed 表达式混乱(因为额外的引号):

sed: 1: "s|mypath/with": 未终止的替代模式

我注意到,它不利于扩大PWD这样的:${PWD//\'/}

关于如何解决这个问题的任何想法?

bash variable-expansion

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

更改文档属性时,WPF WebBrowser控件不会进入设计模式

我有一个令人沮丧的问题.这是我正在做的简化版本:

c#中的UserControl包含工具栏和嵌入式WebBrowser对象.工具栏包含一个"编辑"按钮,单击该按钮可在设计模式下设置Web浏览器控件.另一个按钮"取消"关闭设计模式.

伪代码(非常简化):

public void SetDesignMode(bool dm) {
  IHTMLDocument2 doc = webBrowser.Document as IHTMLDocument2;
  if (dm) doc.designMode = "On";
  else doc.designMode = "Off";
  _designMode = dm;
  ReloadDocument(); // setting designmode clears the document element, so it must be reloaded
}

public void OnLoadCompleted() {
  IHTMLDocument2 doc = webBrowser.Document as IHTMLDocument2;
  if (!_documentLoaded) {
    if (_designMode) doc.designMode = "On";
    else doc.designMode = "Off";
    ReloadDocument();
    _documentLoaded = true;
  }
}

public void ReloadDocument() {
  _documentLoaded = false;
  // code that navigates to …
Run Code Online (Sandbox Code Playgroud)

c# wpf mshtml webbrowser-control

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

如何在Android上进行非阻塞事件处理?

这个问题是关于Android上的事件处理.它不是特定于c ++.

我需要处理UI/OS事件,而不是在处理完所有事件时阻塞.

原因是我移植的应用程序非常大,不能轻易地重写以处理工作线程上的自己的东西.相反,应用程序引擎要求在长期操作期间处理UI/OS事件,否则这些操作将被阻止.

我发现ALooper_pollAll(...)不会为我这样做.例如,如果我在我的活动中创建一个对话框并开始一个长操作,ALooper_pollAll()将不会使我的对话框出现 - 它只会在我返回主循环时显示(我在onNativeWindowCreated中对此进行了测试).

我发现几乎可以解决的唯一解决方案是在UI线程上执行内部循环,通过JNI调用以下代码:

public class MyActivity extends NativeActivity {

  private Handler _uiEventsHandler = null;

  private Runnable _uiEventsTask = new Runnable() {
    public void run() {
      Looper looper = Looper.myLooper();
      looper.quit();
      _uiEventsHandler.removeCallbacks(this);    
      _uiEventsHandler = null;
    }
  };

  public void ProcessEvents(int timeout)
  {
    if (_uiEventsHandler==null) {
      Looper looper = Looper.myLooper();
      _uiEventsHandler = new Handler(looper);
      _uiEventsHandler.removeCallbacks(_uiEventsTask);    
      //_uiEventsHandler.postDelayed(_uiEventsTask,timeout);    
      _uiEventsHandler.post(_uiEventsTask);    
      try {
        looper.loop();
      } catch (RuntimeException re) { 
        // We get an exception when we try to quit the loop, …
Run Code Online (Sandbox Code Playgroud)

java-native-interface events android message-queue looper

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

如何计算Metro中字符串的宽度(不显示)?

我找不到与以下WPF代码等效的Windows运行时来测量字符串的宽度:

FormattedText formattedText = new FormattedText(in_string,in_culture,in_flowdir,in_font,in_sz,in_color);
string_width = formattedText.WidthIncludingTrailingWhitespace);
Run Code Online (Sandbox Code Playgroud)

有人知道它是否可以在Metro中完成?

c# microsoft-metro windows-8 windows-runtime

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